Docker-Compose 中的唯一 ID 参数
Unique ID parameter in Docker-Compose
我想要实现的目标
当我启动时 docker-compose.yml
我可以启动一个 zabbix-agent
带有唯一 ID 作为参数的容器。
到目前为止我尝试了什么
我创建了以下配置:
zabbix:
image: zabbix/zabbix-agent:alpine-trunk
ports:
- "10050:10050"
privileged: true
restart: unless-stopped
environment:
- ZBX_HOSTNAME="$MY_ARG"
- ZBX_SERVER_HOST="$MY_SERVER"
现在我想知道是否有办法启动脚本来在内部填充 $MY_ARG
。
可能的解决方法
只需在脚本中启动 docker-compose up
,我可以在其中添加参数并在内部读取它们:
…
# a script running before the docker-compose command:
export DIST=`grep -Po "^[A-Za-z]*" /etc/issue`
unique_id=$(case $DIST in
Ubuntu)
dmidecode -s baseboard-serial-number | tail -1
;;
Raspbian)
awk 'END{print }' /proc/cpuinfo
;;
*)
echo None
exit 1
esac)
if awk -F= '/own/ && != "" {err=1} END{exit err}' $ENV.env
then echo MY_ARG=$unique_id >> /etc/environment
# alternative way: export MY_ARG=$unique_id
fi
有什么想法吗?这真的是最好的方法吗?
知道了!我只需要在 docker-compose.yml 文件中添加 export unique_id
并使用 $unique_id
。
我 运行 遇到的另一个问题是 运行 docker-compose down
然后是 docker compose up
,所以为了做到这一点,我在 [=15] 前面添加了变量=] 命令如下:
unique_id=MY_ID docker-compose up
很有魅力!
我想要实现的目标
当我启动时 docker-compose.yml
我可以启动一个 zabbix-agent
带有唯一 ID 作为参数的容器。
到目前为止我尝试了什么
我创建了以下配置:
zabbix: image: zabbix/zabbix-agent:alpine-trunk ports: - "10050:10050" privileged: true restart: unless-stopped environment: - ZBX_HOSTNAME="$MY_ARG" - ZBX_SERVER_HOST="$MY_SERVER"
现在我想知道是否有办法启动脚本来在内部填充 $MY_ARG
。
可能的解决方法
只需在脚本中启动 docker-compose up
,我可以在其中添加参数并在内部读取它们:
…
# a script running before the docker-compose command:
export DIST=`grep -Po "^[A-Za-z]*" /etc/issue`
unique_id=$(case $DIST in
Ubuntu)
dmidecode -s baseboard-serial-number | tail -1
;;
Raspbian)
awk 'END{print }' /proc/cpuinfo
;;
*)
echo None
exit 1
esac)
if awk -F= '/own/ && != "" {err=1} END{exit err}' $ENV.env
then echo MY_ARG=$unique_id >> /etc/environment
# alternative way: export MY_ARG=$unique_id
fi
有什么想法吗?这真的是最好的方法吗?
知道了!我只需要在 docker-compose.yml 文件中添加 export unique_id
并使用 $unique_id
。
我 运行 遇到的另一个问题是 运行 docker-compose down
然后是 docker compose up
,所以为了做到这一点,我在 [=15] 前面添加了变量=] 命令如下:
unique_id=MY_ID docker-compose up
很有魅力!