我有一个运行的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 ...]
任何想法是怎么回事?
答案 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