我的多級構建在複製它時找不到/assets/css
目錄。我需要改變什麼?多級構建 - 無此類文件或目錄
泊塢版本
版17.06.0-CE-mac17(18432)
頻道:邊緣
4bb7a7dfa0
MYIMAGE:我在多級生成使用SASS圖片
FROM ruby:2.4.1-slim
RUN mkdir /assets
VOLUME /assets
RUN gem install sass
ENTRYPOINT ["sass"]
多階段構建Dockerfile
請注意我在第一張圖像cd /assets/css && ls && pwd
上運行的調試命令,結果在構建階段顯示。輸出docker build -t myimage:css .
通知
# Compile Sass
FROM myimage/sass AS builder
COPY app/assets/sass /assets/sass
RUN sass --update --force --sourcemap=none --stop-on-error /assets/sass:/assets/css &&\
# sass directory isn't needed
rm -r assets/sass &&\
# debugging: check /assets/css exists inside the container
cd /assets/css && ls && pwd
FROM alpine:3.6
WORKDIR /app
RUN mkdir /app/logs
VOLUME ["/app/logs"]
COPY --from=builder /assets/css /app/assets/css
EXPOSE 80
CMD ["./bin/bash"]
Raw
的cd /assets/css && ls && pwd
上一步3/11輸出顯示/assets/css
目錄存在,它有一個main.css
文件中
Step 1/11 : FROM myimage:sass AS builder
---> 7c6662186d55
Step 2/11 : COPY app/assets/sass /assets/sass
---> 76b5d86846b8
Removing intermediate container ee74d16617b4
Step 3/11 : RUN sass --update --force --sourcemap=none --stop-on-error /assets/sass:/assets/css && rm -r assets/sass && cd /assets/css && pwd
---> Running in 83dc591edc5c
directory /assets/css
write /assets/css/main.css
main.css
/assets/css
---> 3939f46fb355
Removing intermediate container 83dc591edc5c
Step 4/11 : FROM alpine:3.6
---> 7328f6f8b418
Step 5/11 : WORKDIR /app
---> 19ad596f9fc1
Removing intermediate container 790fac2040f1
Step 6/11 : RUN mkdir /app/logs
---> Running in cb66151a4694
---> 18d6c4970d04
Removing intermediate container cb66151a4694
Step 7/11 : VOLUME /app/logs
---> Running in b8a98a38a054
---> fa68603ccf30
Removing intermediate container b8a98a38a054
Step 8/11 : COPY --from=builder /assets/css /app/assets/css
COPY failed: stat /var/lib/docker/aufs/mnt/0ddcc250ed9c4eb1de46305e62cb2303274b027b2c9b0ddd09471fce3c3ed619/assets/css: no such file or directory
那麼,爲什麼不能/assets/css
是複製到最終圖像?爲什麼Docker引擎不能找到它?
什麼版本的泊塢窗您使用的是(一個獨立的運行)?你使用17.06CE還是17.05CE?如果您使用的是舊版本,則不支持多階段構建。 –