我有 docker 文件如下:
FROM node:8 as builder
WORKDIR /usr/src/app
COPY ./src/register_form/package*.json .
RUN npm install
COPY ./src/register_form .
RUN yarn build
FROM tensorflow/tensorflow:1.10.0-gpu-py3
COPY --from=builder /usr/src/app/register_form/build/index.html /app/src/
WORKDIR /app
ENTRYPOINT ["python3"]
CMD ["/app/src/main.pyc"]
但是,它无法从构建器阶段复制索引.html。虽然当我在第一阶段列出文件夹时,文件就在那里。
错误是:
Step 8/22 : COPY --from=builder ./register_form/build/ /app/src/
COPY failed: stat /var/lib/docker/overlay2/5470e05501898502b3aa437639f975ca3e4bfb5a1e897281e62e07ab89866304/merged/register_form/build: no such file or directory
如何解决此问题 - COPY --from=builder docker 命令?
我认为您滥用COPY
命令。正如文档中所说:
如果
src
是一个目录,则目录的全部内容是 复制,包括文件系统元数据。注意:不复制目录本身,仅复制其内容。
因此,您的命令COPY ./src/register_form .
不会在容器中创建register_form
文件夹,而是复制所有内容。您可以尝试添加:
RUN ls .
到您的Dockerfile
以确保。
正如@BMitch在注释中注意到的那样,您可以显式设置目标文件夹名称以实现预期结果:
COPY ./src/register_form/ register_form/