我有一个bitbucket-pipelines.yml,它看起来像这样:
definitions:
steps:
- step: &docker_build
name: "Docker Build"
services:
- docker
caches:
- pip
script:
- cd .
- export IMAGE_NAME_EXTENSION="latest"
- VERSION=$(<version.txt)
- docker build -t $IMAGE_NAME .
- docker save --output tmp-image.docker $IMAGE_NAME
artifacts:
- tmp-image.docker
pipelines:
branches:
master:
- step: *docker_build
字符串
我的Dockerfile看起来像这样:
FROM python:3.8-slim
RUN apt-get -y update && apt-get install -y --no-install-recommends \
libgl1-mesa-glx \
libglib2.0-0 \
wget \
git \
python3 \
ca-certificates \
gcc \
libc6-dev \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
COPY src/some_code/ .
COPY config/ .
CMD ["python3","./abc.py"]
型
在我的代码中,我使用了Paho MQTT客户端。我的问题是,目前MQTT客户端的证书目前是在“config”文件夹中的我的repo的根级别上与代码一起签入的。Paho MQTT客户端自动从那里读取它们。我想把这些证书从我的回购中移走。我在AWS Secrets管理器中复制了我的证书,当我的bitbucket-pipelines.yml运行时,我能够获取它们。但是,现在我想将这些证书复制到我已经构建的Docker镜像中的“config”文件夹中。
我在这里尝试了几件事:
1.我试着在bitbucket-pipelines.yml中构建Docker镜像后运行它,然后尝试使用Python shutil复制文件-问题:一旦bitbucket-pipelines.yml中的步骤完成,Docker镜像就会崩溃
1.尝试使用Python运行它。问题:我在bitbucket-pipelines中没有容器名称。
有人能告诉我正确的文档吗?我试着寻找,但我找不到适合我的用例的帖子。
1条答案
按热度按时间cidc1ykv1#
我可以这样实现:
1.在AWS Secrets Manager中存储机密。
1.将这一行添加到Docker(确保您的repo在根级别没有config文件夹-或者考虑它并相应地更改代码)
字符串
1.在管道中使用AWS CLI获取它们并构建Docker:
型
这样做会获取MQTT所需的证书和所有秘密,并将其放置在paho_mqtt客户端需要的级别上。