我正在使用具有很多相互依赖关系的docker-compose.yml文件进行项目:
version: '3'
services:
accounts:
build:
context: ./accounts
dockerfile: Dockerfile
restart: on-failure
depends_on:
- ganache
volumes:
- ./accounts/src:/app/src
- ./accounts/config:/app/config
- ./accounts/.babelrc:/app/.babelrc
environment:
VIRTUAL_HOST: accounts.nightfall.docker
api-gateway:
build:
context: ./API-Gateway
dockerfile: Dockerfile
restart: on-failure
volumes:
- ./api-gateway/src:/app/src
- ./api-gateway/.babelrc:/app/.babelrc
environment:
VIRTUAL_HOST: api.nightfall.docker
...
volumes:
mongo-volume:
driver: local
driver_opts:
type: none
device: $PWD/../local/mongo-volume
o: bind
zkp-keys:
driver: local
driver_opts:
type: none
device: $PWD/../local/zkp-keys
o: bind
我的理解是,Docker Compose通过使用参数化运行每个服务来命名服务,连接端口以及按照Docker Compose配置中指定的连接顶级卷的方式工作。
我想每个Docker服务都有相同的命令,这就是Compose的工作方式。
如何查找或制作这些等效命令,以便我可以自己一步一步地启动这些服务,并通过Docker Compose获得相同的结果?
答案 0 :(得分:0)
好的,让我试着把你弄出来。这里有2服务。 accounts
和api-gateway
。
让我们尝试为accounts
做等效的docker命令。
accounts:
build:
context: ./accounts
dockerfile: Dockerfile
restart: on-failure
depends_on:
- ganache
volumes:
- ./accounts/src:/app/src
- ./accounts/config:/app/config
- ./accounts/.babelrc:/app/.babelrc
environment:
VIRTUAL_HOST: accounts.nightfall.docker
它具有构建步骤,因此我们需要首先构建图像。 cd
到accounts
目录并运行docker build -t myrepo/accounts:latest .
这将生成名称为myrepo:accounts
的图像。现在我们必须运行映像。我们具有以下属性
restart: on-failure
depends_on:
- ganache
volumes:
- ./accounts/src:/app/src
- ./accounts/config:/app/config
- ./accounts/.babelrc:/app/.babelrc
environment:
VIRTUAL_HOST: accounts.nightfall.docker
具有上述属性的docker命令是
docker run myrepo:accounts --restart on-failure \
-v "./accounts/src:/app/src" \
-v "./accounts/config:/app/config" \
-v "./accounts/.babelrc:/app/.babelrc" \
-e "VIRTUAL_HOST=accounts.nightfall.docker"
在这里,-v
映射卷,-e
映射环境变量。
下一个服务api-gateway
与上面的相同。
答案 1 :(得分:-1)
可以弄清楚这一点的一种方法是使用--verbose
标志。这将显示所有带有Docker Compose调用参数的SDK命令,您可能可以从中得出等效的Docker命令。
docker-compose --verbose up -d