首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在运行时将敏感数据发送到停靠容器

如何在运行时将敏感数据发送到停靠容器
EN

Stack Overflow用户
提问于 2019-07-15 18:49:49
回答 1查看 451关注 0票数 0

我正在尝试将API自动化存储库容器化,以便在ci/cd(gocd)上运行它。下面是Dockerfile的内容。

代码语言:javascript
复制
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配置文件的内容。

代码语言:javascript
复制
[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“。

请提供您的输入。

EN

回答 1

Stack Overflow用户

发布于 2019-07-17 00:11:31

如果您希望避免将此行目录放在dockerfile中,那么可以使用docker run命令的-v选项,该命令将文件/目录从主机挂载到容器文件系统中。

代码语言:javascript
复制
docker run -itd -v /Users/basavarajlamani/Documents/api_tests.conf:/usr/.ops/config/api_tests.conf image-name

如果要使用docker secret复制配置文件

代码语言:javascript
复制
docker service create \
     --name myservice \
     --secret source=api_test.conf,target=/usr/.ops/config/api_tests.conf \
     image-name

注意:您也可以使用docker config而不是docker secret,唯一的区别是它们不是静态加密的,而是直接挂载到容器的文件系统中。

希望能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57038164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档