Docker-Compose中唯一的ID参数

我正在努力实现的

当我启动docker-compose.yml我可以启动一个具有唯一ID作为参数docker-compose.yml zabbix-agent容器。

到目前为止,我已经尝试过

我创build了以下configuration:

   ZABBIX:
    图片:zabbix / zabbix-agent:高山树干
    端口:
       - “10050:10050”
    特权:真实
    重新启动:除非停止
    环境:
       -  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 

有什么想法吗? 这真的是最好的方法吗?

得到它了! 我只需要在export unique_id -compose.yml文件中添加export unique_id并使用$unique_id

我碰到的另一个问题是运行docker-compose down ,然后docker compose up ,所以为了做到这一点,我在docker-compose命令前添加了这个variables:

 unique_id=MY_ID docker-compose up 

奇迹般有效!