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)
VOLUME
Dockerfile中的命令的含义略有不同:
因此,在您的Dockerfile中,VOLUME ./:/app/
必须将其更改为VOLUME /app/
。您的docker-compose
定义将告诉docker将本地目录挂载.
到/app
容器中。
该-v
选项和volumes
在标签docker-compose
的工作方式相同。主机目录已安装到容器目录。容器目录中映像中存在的任何文件都将被主机目录中的文件替换。
归档时间: |
|
查看次数: |
405 次 |
最近记录: |