在图像构建过程中,您将一些东西安装到
/usr/src/app
,然后将其设置为工作目录。以下是Dockerfile中发生这种情况的行:
RUN mkdir -p /usr/src
RUN mkdir -p /usr/src/app && cp -a /tmp/node_modules /usr/src/app && cp -a /tmp/package-lock.json /usr/src/app
RUN cp -a /tmp/dist/application /usr/src/app && cp -a /tmp/dist/config /usr/src/app && cp -a /tmp/dist/domain /usr/src/app && cp -a /tmp/dist/infrastructure /usr/src/app
RUN cp -a /tmp/dist/routes /usr/src/app && cp -a /tmp/dist/types /usr/src/app && cp -a /tmp/dist/webapp.js /usr/src/app && cp -a /tmp/package.json /usr/src/app
RUN chmod 755 /usr/src/app/webapp.js
RUN mkdir -p /usr/src/app/bin
COPY Account/bin /usr/src/app/bin
COPY Account/.env /usr/src/app/.env
WORKDIR /usr/src/app
在构建阶段之后,所有这些都会烘焙到您的图像中,并准备好使用。但在运行时,您告诉docker compose:
volumes:
- ./Account:/usr/src/app/
这是一个覆盖安装。无论图像中嵌入了什么
/usr/src/app
完全被忽略,并被
./Account
从docker编写的目录。yml位于。
我对您的项目了解不够,无法告诉您如何正确修复此问题,但这可能就是您的错误来源。建造期间完成的所有工作
/usr/src/app
正在通过在运行时在其上装载另一个目录来撤消。
如果删除该卷装载,则所有
/usr/src/app
仍然存在并且可以使用。但这可能会产生其他副作用,你需要考虑这些副作用,才能让你的应用发挥作用。