我希望这是一个简单的方法,并且会帮助更多的人,因为我找不到直接的答案。
我正在关注以下示例: https://docs.docker.com/compose/extends/#different-environments
我有两个文件:
Docker进行开发
version: '3.7'
services:
restapi:
build: "./something/"
db:
image: postgres:10.5-alpine
volumes:
postgres_data:
static_volume:
Docker用于生产(docker.compose.prod.yml):
version: '3.7'
services:
restapi:
image: registry.gitlab.com/...
restart: always
db:
restart: always
我说的docker文档:
对于构建和映像,使用Compose的版本1时 文件格式,在本地服务中使用一个选项会导致Compose 如果其他选项是在原始服务中定义的,则将其丢弃。
但是,当我尝试在服务器上运行docker-compose时,我失败了,因为构建路径不存在,这意味着该条目未被覆盖。 出了什么问题?
此命令失败:
sudo docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
使用:
build path /.../.../.../.../... either does not exist, is not accessible, or is not a valid URL.
答案 0 :(得分:1)
您可以指定多个docker-compose
配置文件,它们将从右到左相互覆盖。
在以下示例中,prod.yml将覆盖dev.yml。
docker-compose -f /path/to/docker-compose-a.yml -f /path/to/docker-compose-b.yml up.
为解决您的问题,我将执行以下操作。
创建3个.yml文件,
然后运行开发人员环境:(common.yml + dev.yml)
docker-compose -f /path/to/docker-compose-common.yml -f /path/to/docker-compose-dev.yml up.
和生产(common.yml + prod.yml):
docker-compose -f /path/to/docker-compose-common.yml -f /path/to/docker-compose-prod.yml up.