docker:如何传环境变量给entrypoint
- 使用shell,不带中括号
ENTRYPOINT .\main -web -c $CONFIG
ENTRYPOINT ['sh', '-c', ".\main -web -c $CONFIG"]
docker build --build-arg ENVIROMENT=integration // 覆盖ENTRYPOINT命令
- 使用shell脚本
ENTRYPOINT ["./entrypoint.sh"]
entrypoint.sh
镜像是alpine
#!/bin/sh
exec ./main web -c ./configs/$CONFIG
镜像是ubuntu
#!/bin/bash
exec ./main web -c ./configs/$CONFIG
这里的#!/bin/sh
shell声明,主要看你的镜像里面是shell还是安装bash。
启动
docker run -dp port:9000 -e CONFIG=config.dev.yaml --name “containerName:tag” containerName