Docker 启动镜像报错 Could not resolve placeholder
问题现象
本地启动 SpringBoot 项目是正常的,执行以下命令:
# 项目打包
maven package
# 构建镜像,命名为 test
docker build -f Dockerfile -t test .
# 指定 dev 环境启动镜像 test
docker run --name test -itd -p 8080:8080 test -e env=dev`
报错 Could not resolve placeholder
问题原因
-e
命令指定环境变量必须紧挨着 docker run
之后,否则不生效。
猜测是因为镜像已经启动了,再指定环境变量就晚了。
正确的启动镜像并指定环境变量的命令为 docker run -e env=dev --name test -itd -p 8080:8080 test
。
经验教训
命令顺序可能会影响执行结果,以官方为准。