dockerfile context問題


docker buld -t xx:xx .等於將當前目錄(包含Dockerfile)發送到docker服務端,然后所有的操作都是在這個目錄里面進行的。所以如果要移動宿主機的文件到容器是不行的,解決把法就是把需要的文件都放到此目錄里面來。

WORKDIR /xx等於是接下來在容器工作的目錄,操作其他數據都是相當於以此目錄為相對目錄

FROM openjdk:8
ENV TZ=Asia/Shanghai
RUN mkdir -p /app
WORKDIR /app
COPY ./target/love-0.0.1-SNAPSHOT.jar /app/
CMD java -jar love-0.0.1-SNAPSHOT.jar

之前不太理解上方的方式,workdir /app了,下方又是COPY ./target,而/app下無target目錄啊。其實不然,這兩個路徑壓根沒關系,COPY始終是以context為根目錄的,不管workdir是什么他COPY都是以context為根。而下方的CMD就和workdir有關了。
為了更好的理解,將COPY和workdir交換一下位置可能就自然一點,雖然本質並沒有改變,像這樣:

FROM openjdk:8
ENV TZ=Asia/Shanghai
RUN mkdir -p /app
COPY ./target/love-0.0.1-SNAPSHOT.jar /app/
WORKDIR /app
CMD java -jar love-0.0.1-SNAPSHOT.jar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM