我正在尝试将API自动化存储库容器化,以便在ci/cd(gocd)上运行它。下面是Dockerfile的内容。
FROM alpine:latest
RUN apk add --no-cache python3 \
&& pip3 install --upgrade pip
WORKDIR /api-automation
COPY . /api-automation
RUN pip --no-cache-dir install .
COPY api_tests.conf /usr/.ops/config/api_tests.conf
ENTRYPOINT ["pytest" "-s" "-v" "--cache-clear" "--html=report.html"]下面是api_tests.conf配置文件的内容。
[user]
username=<user_name>
apikey=<api_key>
[tokens]
token1=<token1>api_tests.conf是配置文件,它包含接口密钥、令牌等敏感数据(注意:配置文件未加密)。目前,我正在将此配置从存储库复制到容器中的以下位置/usr/.ops/config/api_tests.conf,但我不想这样做,因为存在安全问题。那么当我从ci/cd机器上运行容器时,如何复制这个api_tests.conf文件(这意味着,我需要从Dockerfile中删除指令COPY api_tests.conf /usr/.ops/config/api_tests.conf)。
我的第二个问题是,如果我使用docker secret create my_secret file_path命令创建一个秘密文件,当我运行容器时如何复制这个秘密api_tests.conf文件。
注意:一旦缓存文件被复制到容器中,我需要运行命令"pytest -s -v -- api_tests.conf -v --html=report.html“。
请提供您的输入。
发布于 2019-07-17 00:11:31
如果您希望避免将此行目录放在dockerfile中,那么可以使用docker run命令的-v选项,该命令将文件/目录从主机挂载到容器文件系统中。
docker run -itd -v /Users/basavarajlamani/Documents/api_tests.conf:/usr/.ops/config/api_tests.conf image-name如果要使用docker secret复制配置文件
docker service create \
--name myservice \
--secret source=api_test.conf,target=/usr/.ops/config/api_tests.conf \
image-name注意:您也可以使用docker config而不是docker secret,唯一的区别是它们不是静态加密的,而是直接挂载到容器的文件系统中。
希望能有所帮助。
https://stackoverflow.com/questions/57038164
复制相似问题