如果我设置了一个环境变量,比如ENV ADDRESSEE=world
,我想在连接成固定字符串的入口点脚本中使用它,如下所示:
ENTRYPOINT ["./greeting", "--message", "Hello, world!"]
由于world
是环境变量的值,我该怎么做呢?我尝试使用"Hello, $ADDRESSEE"
,但似乎不起作用,因为它从字面上理解$ADDRESSEE
。
发布于 2018-04-18 07:57:06
我试图用建议的答案来解决,但仍然遇到了一些问题……
这是我的问题的一个解决方案:
ARG APP_EXE="AppName.exe"
ENV _EXE=${APP_EXE}
# Build a shell script because the ENTRYPOINT command doesn't like using ENV
RUN echo "#!/bin/bash \n mono ${_EXE}" > ./entrypoint.sh
RUN chmod +x ./entrypoint.sh
# Run the generated shell script.
ENTRYPOINT ["./entrypoint.sh"]
特别针对你的问题:
RUN echo "#!/bin/bash \n ./greeting --message ${ADDRESSEE}" > ./entrypoint.sh
RUN chmod +x ./entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]
发布于 2021-03-10 19:36:39
在我的casw中是这样工作的:(用于docker中的Spring boot应用程序)
ENTRYPOINT java -DidMachine=${IDMACHINE} -jar my-app-name
并在docker run上传递参数
docker run --env IDMACHINE=Idmachine -p 8383:8383 my-app-name
发布于 2021-04-28 14:03:49
以下是对我有效的方法:
ENTRYPOINT [ "/bin/bash", "-c", "source ~/.bashrc && ./entrypoint.sh ${@}", "--" ]
现在,您可以为docker run
命令提供任何参数,并且仍然可以读取所有环境变量。
https://stackoverflow.com/questions/37904682
复制相似问题