提问人:AGc 提问时间:11/8/2023 更新时间:11/8/2023 访问量:44
是否可以将 docker-compose.yml 中的依赖项限制为仅针对本地配置文件?
Can I limit a dependency in docker-compose.yml only for profiles local?
问:
对于本地开发,我正在连接到在 VM 的 docker 容器中运行的 SQL Server。但是,对于开发人员,我正在连接到 Azure 服务器。问题是,在我的docker-compose.yml中,对于本地开发,我有一些依赖于 sql-server 的服务,当我想部署到 dev 时,我需要从我的 docker compose 中删除 sql-server 服务,然后我需要删除与它相关的依赖项,因为我不再需要它,因为我正在连接到 Azure。有没有办法限制仅针对本地配置文件的降级 (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
我目前拥有的解决方案只是复制并拥有一些用于本地的东西和一些用于 htttps 的东西。但是,这看起来不是很好,而且效率也不是很高。
答:
1赞
Moziii
11/8/2023
#1
在 Docker Compose 中,您可以利用该属性来定义应在哪个配置文件下启动哪些服务。对于您的用例,您可以为您和任何其他只应在本地运行的服务定义配置文件。然后,在部署到开发时,不会激活配置文件,并且不会启动或依赖这些服务。profiles
local
sql-server
local
对于本地开发:
docker-compose --profile local up
部署到不需要该服务的开发环境时,只需省略以下选项:sql-server
--profile local
docker-compose up
这种方法将允许您为不同的环境使用不同的配置,而不会复制大量内容,并允许在文件中清晰地分离关注点。docker-compose.yml
评论
0赞
AGc
11/14/2023
工作,我只是想多了。多谢
评论
profiles