gpt4 book ai didi

docker - 将docker-compose args传递到ENTRYPOINT脚本

转载 作者:行者123 更新时间:2023-12-02 20:00:13 27 4
gpt4 key购买 nike

我的docker-compose.yml看起来像这样:

...
build:
context: myimg
args:
- FOO=bar

而我的dockerfile这样做:
...
ARG FOO
ENTRYPOINT run.sh

但是,我的脚本看不到 FOO变量...

在run.sh内部:
echo $FOO

什么都不输出。我尝试了shell和exec形式的几种组合,并将vars作为env vars传递,但是没有任何效果。我需要将它们作为环境变量传递,而不是参数传递。

最佳答案

args:仅影响构建初始图像,并且初始图像构建不了解您可能在docker-compose.yml文件中定义的其余上下文。

如果希望将其用于运行时配置,则environment:设置会更好。与构建时参数不同,您不必为了更改环境变量设置而重建镜像。从ARG中删除Dockerfile行,并将docker-compose.yml文件更改为

build:
context: myimg
environment:
- FOO=bar

如果您希望稍后将 ARG值作为环境变量显示出来(例如在 ENTRYPOINT脚本中),则还需要为其添加 ENV设置。有 a couple of examples in the Dockerfile documentation。这可能看起来像
FROM ...
ARG FOO
ENV FOO=$FOO
COPY run.sh /
ENTRYPOINT ["/run.sh"]

关于docker - 将docker-compose args传递到ENTRYPOINT脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54357062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com