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

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

  •  1
     
  •   f1ren2es · 220 天前 · 1088 次点击
    这是一个创建于 220 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原本的想法是: 因为 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
        1
    JASONWOOD   220 天前
    jenkins pipeline
        2
    JASONWOOD   220 天前
    ignore it
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2835 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 15ms · UTC 11:05 · PVG 19:05 · LAX 04:05 · JFK 07:05
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1