我有一个正在 dockerizing 的开发环境,我希望能够实时重新加载我的更改,而无需重建 docker 映像。我正在使用 docker compose,因为 redis 是我的应用程序的依赖项之一,我喜欢能够链接 redis 容器
我在我的定义了两个容器docker-compose.yml:
docker-compose.yml
node: build: ./node links: - redis ports: - "8080" env_file: - node-app.env redis: image: redis ports: - "6379"
我已经在我node的应用程序的 dockerfile 中添加了一个卷,但是如何将主机的目录挂载到卷中,以便我对代码的所有实时编辑都反映在容器中?
node
这是我当前的 Dockerfile:
# Set the base image to Ubuntu FROM node:boron # File Author / Maintainer MAINTAINER Amin Shah Gilani <amin@gilani.me> # Install nodemon RUN npm install -g nodemon # Add a /app volume VOLUME ["/app"] # TODO: link the current . to /app # Define working directory WORKDIR /app # Run npm install RUN npm install # Expose port EXPOSE 8080 # Run app using nodemon CMD ["nodemon", "/app/app.js"]
我的项目如下所示:
/ - docker-compose.yml - node-app.env - node/ - app.js - Dockerfile.js
查看他们的 文档
从外观上看,您可以在 docker-compose.yml 上执行以下操作
volumes: - ./:/app
./主机目录在哪里/app,容器的目标目录在哪里。
./
/app
编辑: 以前的文档源现在导致版本历史记录,您必须选择您正在使用的 compose 版本并查找参考。
为懒人“ v3 / v2 / v1 ”
旁注:截至本次编辑,所有版本的语法保持不变