docker-compose.yml
基于设置端口
BASE_PORT
变量。
我有一个
.env
包含以下内容的文件:
BASE_PORT=57900
我的start bash脚本如下所示:
#/bin/sh
. .env
docker-compose stop
docker-compose rm -v -f
docker-compose up -d adminserver
码头工人-合成.yml
...
services:
adminserver:
image: ....
hostname: ...
ports:
- ${BASE_PORT}:8001
...
这个配置很有魅力,
docker ps | grep 8001
返回正确的内容。
ports
部分:
...
services:
adminserver:
image: ....
hostname: ...
ports:
- $((BASE_PORT+1)):8001
- $((BASE_PORT+2)):8002
- $((BASE_PORT+3)):8003
...
databaseserver:
image: ....
hostname: ...
ports:
- $((BASE_PORT+10)):1541
zookeeper:
image: ....
hostname: ...
ports:
- $((BASE_PORT+30)):2181
kafka:
image: ....
hostname: ...
ports:
- $((BASE_PORT+40)):9092
- $((BASE_PORT+41)):9093
- $((BASE_PORT+42)):9094
这个
$((BASE_PORT+1))
表达式在shell中有效,但在*.yml文件中不起作用。
我得到了这个错误:
ERROR: Invalid interpolation format for "ports" option in service "adminserver": "$((BASE_PORT+1)):8001"
你知道怎么做吗?