now*_*wox 5 docker docker-compose
在我的docker-compose.yml文件中,我有很多服务:
还有一些我使用的 CLI 实用程序docker-compose run --rm:
当我启动我的系统时,我会这样做docker-compose up。不幸的是,这也尝试启动所有 CLI 实用程序。有没有办法在我的 docker-compose 中将这两个类别分开?
从docker-compose1.28.0开始,新的服务配置文件就是为此而制作的!随着profiles您可以标记服务只在启动特定的配置文件:
services:
nginx:
# ...
mysql:
# ...
composer:
profiles: ["cli-only"]
# ...
# ...
npm:
profiles: ["cli-only"]
# ...
Run Code Online (Sandbox Code Playgroud)
docker-compose up # start main services, no composer and no npm
docker-compose run --rm composer
docker-compose run --rm npm
Run Code Online (Sandbox Code Playgroud)
不幸的是,目前没有方便的方法来做到这一点。官方推荐的方法是将您的命令分成自己的docker-compose.yml:
# start all your services
docker-compose up
# execute a defined command in docker-compose.cli.yml
docker-compose -f docker-compose.cli.yml run npm update
# if your command depends_on a service you need to merge the configs
docker-compose -f docker-compose.yml -f docker-compose.cli.yml run npm update
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml使用-f标志指定多个文件会将它们合并在一起,请参阅文档。这允许您依赖在另一个文件中定义的服务/网络/卷。
有关整个问题的深入讨论,请参阅docker/compose#1896。
| 归档时间: |
|
| 查看次数: |
3239 次 |
| 最近记录: |