gpt4 book ai didi

python - 将环境变量从 Shippable 传递到 Docker

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:13 25 4
gpt4 key购买 nike

我使用 Shippable 有两个原因:自动构建 Docker 镜像并传递加密的环境变量。我能够自动化构建,但无法传递变量。

我首先在项目设置中的可发货文本框中输入环境变量:

SECRET_KEY=123456

我点击“加密”按钮,然后可发货返回:

- secure : hash123abc...

我将此哈希值放入我的 Shippable.yml 文件中。它看起来像:

language: python

python:
- 2.7

build_image: myusername/myimagename

env:

- secure : hash123abc...

build:
post_ci:
- docker login -u myusername -p mypassword
- docker build -t myusername/myimagename:latest .
- docker push myusername/myimagename:latest

integrations:
hub:
- integrationName : myintegrationname
type: docker
branches:
only:
- master

自动构建工作了!但如果我尝试:

sudo docker run myusername/myimagename:latest echo $SECRET_KEY

我什么也没得到。

我的 Dockerfile 设置环境变量(在本例中为 SECRET_KEY)如下所示:

FROM python:2.7.11

RUN apt-get update

RUN apt-get install -y git

RUN get clone https://github.com/myusername/myrepo.git

ENV SECRET_KEY=$SECRET_KEY

解释一下我的逻辑可能会有所帮助。因为如果代码中没有我的想法,则可能是问题:

可发布的项目构建被触发(通过存储库推送或手动)。在shippable.yml中它做了一些事情:

  • 构建初始图像
  • 设置 SECRET_KEY 环境变量
  • 基于 Dockerfile 构建新镜像
    • Dockerfile:-- 将环境变量 SECRET_KEY 设置为前两步 .yml 设置的 SECRET_KEY
  • 推送图像

我想现在我已经在图像中设置了一个环境变量,我现在可以访问它了。但我什么也没得到。这里有什么问题吗?

最佳答案

感谢@Alex Hall 与我一起解决这个问题!

事实证明,在此设置中向 Docker 传递环境变量必须通过一个简单的标志来启动。所以在我的 Shippable.yml 中我改变了:

- docker build -t myusername/myimagename:latest .

- docker build --build-arg SECRET_KEY=$SECRET_KEY -t myusername/myimagename:latest .

然后在我的 Dockerfile 中添加:

ARG SECRET_KEY

RUN echo $SECRET_KEY > env_file

瞧, key 在 env_file

关于python - 将环境变量从 Shippable 传递到 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36973519/

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