当我启动docker-compose.yml
时,我可以使用唯一ID作为参数启动zabbix-agent
容器。
我创建了以下配置:
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 $3}' /proc/cpuinfo
;;
*)
echo None
exit 1
esac)
if awk -F= '/own/ && $2 != "" {err=1} END{exit err}' $ENV.env
then echo MY_ARG=$unique_id >> /etc/environment
# alternative way: export MY_ARG=$unique_id
fi
有什么想法?这真的是最好的方式吗?
答案 0 :(得分:0)
知道了!我只需要在docker-compose.yml文件中添加export unique_id
并使用$unique_id
。
我遇到的另一个问题是运行docker-compose down
然后docker compose up
,所以为了做到这一点,我在docker-compose
命令前添加了变量,如下所示:
unique_id=MY_ID docker-compose up
像魅力一样!