use*_*780 4 javascript node.js docker dockerfile docker-compose
我正在尝试设置a Dockerfile将主机目录安装到我指定的docker容器目录(因此代码更改将立即反映出来)。当我运行docker run -p 3000:3000 -d -v ~/Projects/test:/app test文件时,将挂载文件,并且一切正常。但是,一旦关闭容器,文件更改就不会保留在容器中,就像我volumes从docker-compose文件中运行时所做的更改一样。
这是我的Dockerfile:
FROM node:onbuild
EXPOSE 3000
RUN mkdir /app
VOLUME ./:/app/
WORKDIR /app/
RUN npm install -g nodemon
CMD nodemon server.js
Run Code Online (Sandbox Code Playgroud)
这是一个工作的docker-compose.yml:
test:
build: ./
volumes:
- ./:/app/
working_dir: /app/
command: npm start
ports:
- "3000:3000"
Run Code Online (Sandbox Code Playgroud)
VOLUMEDockerfile中的命令的含义略有不同:
因此,在您的Dockerfile中,VOLUME ./:/app/必须将其更改为VOLUME /app/。您的docker-compose定义将告诉docker将本地目录挂载.到/app容器中。
该-v选项和volumes在标签docker-compose的工作方式相同。主机目录已安装到容器目录。容器目录中映像中存在的任何文件都将被主机目录中的文件替换。
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |