gpt4 book ai didi

docker - 如何维护 Dockerfile 中使用的 secret ?

转载 作者:行者123 更新时间:2023-12-04 15:38:29 32 4
gpt4 key购买 nike

以下是具有密码的 docker-compose 文件片段:

test:
build: ../../
dockerfile: docker/dev/Dockerfile
volumes_from:
- cache
links:
- db
environment:
DJANGO_SETTINGS_MODULE: todobackend.settings.test
MYSQL_HOST: db
MYSQL_USER: root
MYSQL_PASSWORD: password
TEST_OUTPUT_DIR: /reports

db:
image: mysql:5.6
hostname: db
expose:
- "3386"
environment:
MYSQL_ROOT_PASSWORD: password

在 AWS 环境中运行此文件,

可以在 s3 中使用 KMS 存储,另一种方法是 AWS 参数存储

使用 docker-compose 构建 dockerfile 和启动容器时, 如何安全地维护 secret ,而不将其暴露给文本文件?任何代码片段...

最佳答案

能想到几种可能的方法。

  • 将 secret 存储在环境变量中,引用撰写文件中的环境变量,如 this

  • environment:
    RACK_ENV: development
    SHOW: 'true'
    SESSION_SECRET:


    没有任何值的键被解析为它们在机器上的值。

    另一种方法是使用 docker secret .
    创建 secret
    $ printf "This is a secret" | docker secret create db_password -

    如果它是一个文件,它可以像这样保存
    $docker secret create site.key site.key

    访问您撰写中的 secret ,如下所示
    version: '3.1'

    services:
    db:
    image: mysql:latest
    volumes:
    - db_data:/var/lib/mysql
    environment:
    MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
    MYSQL_DATABASE: wordpress
    MYSQL_USER: wordpress
    MYSQL_PASSWORD_FILE: /run/secrets/db_password
    secrets:
    - db_root_password
    - db_password

    该 secret 在/run/secrets 文件夹中可用。

    如果您提交容器,则不会包含 secret 。

    关于docker - 如何维护 Dockerfile 中使用的 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58436138/

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