命令是这样的:
docker run -d -it -p 8888:7410 --name zseCon1 -h zseCon1 --net=net1 --ip 172.20.0.120 -e tokenId=123456 -v /zseShare:/soft --privileged --restart=always centos7 /usr/sbin/init
然后容器内部有一个脚本run.sh 是根据传入的 tokenId 搞事情的...
有一行代码是 echo "tokenId: $tokenId" >> token.txt
然后我再 /etc/rc.local 最后一行添加了
sh /run.sh
但是 $tokenId 取不到值....
我确定 run.sh 开机自动运行的 因为其它逻辑都执行了 只有这个环境变量取不到.... 而且 $HOSTNAME 这种环境变量是取得到的...
但是 exec 到容器里面 运行一下
sh /etc/rc.loacl 又他妈可以取到 $tokenId
我怀疑是启动顺序问题 应该是rc.local 先于docekr -e 设置环境变量执行了...但是 我不知道应该把我的 run.sh 放到哪里自启动才能读取到 $tokenId