我正在为部署SQL容器和服务容器的项目开发功能。 由于构建需要花费时间,并且我需要与较早的实现进行比较,因此最好组合两个不同的部署,然后在需要时恢复它们。我仍在探索Docker,可能已经错过了一些东西。以下是yml文件。
version: '3.3'
services:
mssql:
image: <MSSQL_IMAGE>
ports: <AVAILABLE_PORTS>
expose: <EXPOSED_PORTS>
networks:
ed_network:
aliases:
- mssql.local.com
ed_server:
image: "ed_local:latest"
build:
dockerfile: <PATH_TO_DOCKERFILE>
ports: <AVAILABLE_PORTS>
expose: <EXPOSED_PORTS>
hostname: local.com
privileged : true
networks:
ed_network:
aliases:
- ed.local.com
depends_on:
- mssql
networks:
ed_network:
driver: bridge
volumes:
mssql_data:
答案 0 :(得分:1)
您可以使用环境变量(例如包含端口定义)来参数化您的docker compose文件,然后启动两次。只需一点点“魔术”,就可以计算出这些环境变量。 [这称为变量替换]
您还可以选择多个docker-compse文件覆盖值。您可以使用-f
标志按顺序添加它们。然后,您可以使用-p
提供一个项目名称来区分正在运行的配置/版本。设计替代对象时必须格外小心,以使该系统运行。
这两个选项都有其缺点,而且都不是很好。但是它们确实是原则性的。
我在书签中浏览了一下,找到了我读过的文章,以便在这里找到这些想法:https://runnable.com/docker/advanced-docker-compose-configuration