原本的想法是: 因为 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 写的不对, 能否指点一下给小弟一点思路, 谢谢