对于本地开发,我连接到在虚拟机中的docker容器中运行的SQL服务器。然而,对于dev,我连接到Azure服务器。问题是,在我的docker-compose.yml中,对于本地开发,我有一些依赖于sql-server的服务,当我想部署到dev时,我需要从我的Docker compose中删除SQL服务器服务,然后我需要删除与它相关的依赖项,因为我不再需要它了,因为我正在连接到Azure。有什么方法可以限制dependency(depends_on)仅用于本地配置文件吗?
这是我想要的,但对我来说听起来像是某种条件:
sql-server:
image: x
environment: x
pw: x
ports: x
healthcheck: x
profiles: -local
dependant-service:
depends_on: sql-server ONLY when profiles: - local else it doesn't depend
字符串
解决方案,我目前只是复制,并有本地的东西和HTTPS的东西。然而,这看起来不是很好,它不是很有效。
1条答案
按热度按时间mec1mxoz1#
在Docker Compose中,您可以利用
profiles
属性来定义哪些服务应该在哪个配置文件下启动。对于您的用例,您可以为sql-server
和任何其他只应该在本地运行的服务定义local
配置文件。然后,当您部署到开发时,您不会激活local
配置文件,这些服务将不会启动或依赖。在地方发展方面:
字符串
当您部署到不需要
sql-server
服务的开发环境时,只需省略--profile local
选项:型
这种方法将允许您在不同的环境中使用不同的配置,而无需复制大量内容,并允许在
docker-compose.yml
文件中清晰地分离关注点。