JPG*_*JPG 7 docker docker-compose
我有一个docker-compose.yml看起来像
version: '2'
services:
redis:
image: redis
mysqldb:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=passme
- MYSQL_DATABASE=mydb
- MYSQL_USER=root
base:
build: .
volumes:
- .:/proj
environment:
- ENV_1=Value_1
- ENV_2=Value_2
- ENV_3=Value_3
worker:
extends:
service: base
command: celery -A proj worker --loglevel=debug
links:
- redis
- mysqldb
depends_on:
- mysqldb
web:
extends:
service: base
links:
- mysqldb
- redis
depends_on:
- mysqldb
ports:
- "8000:8000"
command: python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
该
extends关键字在早期撰写的文件格式,最高可达撰写文件支持version 2.1(见V1延伸,在延伸V2),但在撰写不支持version 3.x
所以,这是我的问题,如何在不丢失当前功能的情况下使用版本 3 docker-compose 文件?
至于解决方法,您可以使用docker-compose addons,例如
include:
- http://example.com/compositions/servicea.yaml
- http://example.com/compositions/serviceb.yaml
namespace: core
web:
image: example/service_a:latest
links: ['servicea.web', 'serviceb.api']
Run Code Online (Sandbox Code Playgroud)
另一种方法是从命令行包含多个作曲家文件(具有多个-f选项)。请参阅:部署时添加对多个 composefile 的支持。例如
docker-compose -f submodules/A_SUB_PROJECT/docker-compose.yml -f submodules/B_SUB_PROJECT/docker-compose.yml config | docker-compose -f - up
Run Code Online (Sandbox Code Playgroud)
来源:当使用来自不同目录的多个 docker-compose.yml 文件时,本地路径未正确遵循。
一般来说,版本 3 更适合 Swarm/Kube 堆栈,因此可以考虑使用它。
例如
docker stack deploy -c docker-compose.yml mystack1
docker stack deploy -c another/docker-compose.yml mystack2
Run Code Online (Sandbox Code Playgroud)
如果您不使用 Swarm 或 Docker Enterprise Kubernetes 堆栈,则没有理由使用 v3。坚持使用 v2.4,您将获得所有
docker-composecli 功能,包括extends、depends_on、扩展字段,甚至还有depends_on运行状况检查(以避免wait-for-it脚本)。
有关的:
| 归档时间: |
|
| 查看次数: |
3640 次 |
| 最近记录: |