V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
f1ren2es
V2EX  ›  DevOps

请教: JenkinsFile 中如何正确设置环境变量传递给 Docker 容器

  •  1
     
  •   f1ren2es · 2018-10-19 12:17:50 +08:00 · 4045 次点击
    这是一个创建于 1987 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原本的想法是: 因为 Python 项目中需要设置一些敏感信息为环境变量, 在代码中使用 os.environ.get() 获取环境变量, 现在使用 JenkinsFile + Docker-Compose 实现自动化部署, 这些环境变量写入 DockerFile/Docker-Compose.yml 中不安全,想实现 JekinsFile 从 Jenkins 中读取这些变量传递给 Docker 容器, 但发现一些问题, 希望有老哥能够指点一下:

    • 原本是想在 Jenkins 项目设置中配置这些环境变量,SO 上说可以使用 enviject Plugin, 但 Jenkins 中只搜索到 enviject API, 似乎无效
    • 尝试从凭据中读取, 在 Jenkinsfile 中使用 credentials() 获取凭据中设置的 secret text, 但容器中似乎总是获取不到, e.g. 环境变量设置 mysql host 为 docker-compose 中的 services name, 但代码运行时获取到设置的默认值 localhost 并且报错无法连接到 localhost mysql socket. 尝试过在 vps 上手动 docker-compose up 启动容器并手动写入环境变量, 无此问题发生

    目前卡在这里了, 不知道是 Jenkis 抽风还是 Jenkinsfile 写的不对, 能否指点一下给小弟一点思路, 谢谢

    2 条回复    2018-10-19 13:39:34 +08:00
    JASONWOOD
        1
    JASONWOOD  
       2018-10-19 13:38:21 +08:00
    jenkins pipeline
    JASONWOOD
        2
    JASONWOOD  
       2018-10-19 13:39:34 +08:00
    ignore it
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4999 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 01:14 · PVG 09:14 · LAX 18:14 · JFK 21:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.