Rus*_*hal 13 docker docker-compose
对于生产部署,我不想要共享卷.所以,我有一个覆盖文件,但这不会删除卷.
有没有办法删除覆盖文件中的共享卷?我想避免仅仅为了开发而使用覆盖,因为这看起来很笨拙.
这是我的docker-compose.yml:
version: '2'
# other services defined here
services:
web:
build:
context: .
# other configuration
volumes:
- .:${APP_DIR}
Run Code Online (Sandbox Code Playgroud)
我的docker-compose.prod.yml:
version: '2'
services:
web:
volumes: []
restart: always
Run Code Online (Sandbox Code Playgroud)
合并列表条目时docker-compose,它会添加新映射但不会删除现有的卷映射.
您可以通过使dev具有覆盖文件或2.1版本来实现此功能,您可以扩展常见的docker文件,而不是应用可以指向单个文件的覆盖.
这可能是你的docker-compose.yml:
version: '2'
# other services defined here
services:
web:
extends:
file: docker-compose.prod.yml
service: web
build:
context: .
restart: no
volumes:
- .:${APP_DIR}
Run Code Online (Sandbox Code Playgroud)
您的docker-compose.prod.yml将包含所有常见配置和prod设置:
version: '2'
services:
web:
# other configuration
restart: always
Run Code Online (Sandbox Code Playgroud)
小智 5
我假设您要用来docker-compose up启动开发版本,并拥有第二个配置文件以将其扩展到生产环境。
如果要确保完全覆盖卷,请使用第三个配置文件docker-compose.override.yml。将所有用于开发的卷定义放在此处。
docker-compose up默认情况下用这个文件扩展基本配置。但是,当您执行类似的操作时docker-compose -f docker-compose.yml -f production.yml,该docker-compose.override.yml文件将不会加载,并且您只会从生产文件中获取卷。
| 归档时间: |
|
| 查看次数: |
5334 次 |
| 最近记录: |