首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何与Helm和Docker共享同一环境文件-Compose

如何与Helm和Docker共享同一环境文件-Compose
EN

Stack Overflow用户
提问于 2019-08-07 10:48:07
回答 2查看 1.1K关注 0票数 3

如果.env文件与docker-compose.yml目录相同,则docker-compose将自动读取该文件。考虑到这一点,我继续在.env文件中定义app-container环境变量来存储容器URL,如下所示:

代码语言:javascript
复制
app-container=12345.dkr.ecr.us-west-2.amazonaws.com/container-image:v003

然后,在docker-compose.yml文件中,我用环境变量app-container替换容器URL。

代码语言:javascript
复制
    version: '3'

    services:
      app1:
        build:
          context: .
          dockerfile: my.dockerfile
          image: ${app-container}

如果我可以传递相同的app-container环境变量来替换在Helm的values.yaml文件中定义的容器的URL,那就太好了。因此,不是显式地存储容器的URL

代码语言:javascript
复制
app:
  image: 12345.dkr.ecr.us-west-2.amazonaws.com/container-image:v003

Helm的values.yaml文件可以使用已在.env文件中定义并由docker-compose使用的相同app-container环境变量。然后,可以简单地将舵机的values.yaml文件定义为:

代码语言:javascript
复制
app:
  image: ${app-container}

我想知道是否可以在docker-compose和Helm之间共享相同的env文件?

EN

回答 2

Stack Overflow用户

发布于 2019-08-07 12:25:42

试试这个,它有点老生常谈的方式:

  • 首先从.env文件设置环境变量。

代码语言:javascript
复制
$ cat .env
appcontainer=12345.dkr.ecr.us-west-2.amazonaws.com/container-image:v003
$ while read LINE; do export "$LINE"; done < .env

注意:您需要从app-container名称中删除-。否则,在设置环境变量bash: export: app-container=12345.dkr.ecr.us-west-2.amazonaws.com/container-image:v003': not a valid identifier时将出现此错误

  • 现在使用--set选项在values.yaml中显式设置环境。

代码语言:javascript
复制
helm install --set app.image=$appcontainer ./mychart

但理想情况下,为您的docker-composehelm chart提供单独的env会更好。

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2019-08-07 12:15:02

不是直接的,您必须编写一个脚本将一种格式转换为另一种格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57386315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档