Docker入口点启动脚本exec错误

时间:2018-01-18 02:38:02

标签: python bash docker

我有一个运行的docker文件:

一个简单的启动脚本,用于创建在ENTRYPOINT中调用的jinja2文件

ENTRYPOINT ["./docker-entrypoint.sh"]
CMD ["python test.py", "--config", "config.json"]

脚本是:

#!/bin/bash
jinja2 config.json.j2 > config.json
exec "$@"

但是当我使用此命令运行docker时。

docker run test -env tagname="Foo" -env value=300

我明白了:

./docker-entrypoint.sh: line 3: exec: -e: invalid option
exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]

任何想法是怎么回事?

3 个答案:

答案 0 :(得分:1)

环境变量需要在您的图像名称之前。

之后的一切都取代了CMD。此外,它是-e--env,因此您的破折号一开始就缺失。

您也可以将python命令放在entrypoint文件中。

答案 1 :(得分:0)

请尝试docker run -env ... test?我的猜测是尾随的-env参数作为脚本的参数传递到容器中。

答案 2 :(得分:0)

如果 -env 是需要传递给图像的环境,你应该调用:

docker run -it -e ENVXX=aa -e ENVYY=bb ImageNameOfTest

如果 -env 是需要传递给测试 exe 的参数,请调用:

docker run -it ImageNameOfTest test -env xxx -env yyy