docker-compose - 是否可以使用 docker compose 生成随机 mysql 密码

标签 docker-compose

我正在创建一个 dockercompose 文件。
我想用这个文件建立一个项目。这个 dockercompose 将生成 2 个 docker 容器:一个用于 mysql,另一个用于 apache2。
我想做的是自动化一切,我想生成一个唯一的 mysql 密码。有可能这样做吗?

谢谢

最佳答案

您可以通过环境变量MYSQL_RANDOM_ROOT_PASSWORD为mysql设置一个随 secret 码。 .

MYSQL_RANDOM_ROOT_PASSWORD

This is an optional variable. Set to yes to generate a random initial password for the root user (using pwgen). The generated root password will be printed to stdout (GENERATED ROOT PASSWORD: .....).



https://github.com/mysql/mysql-docker#mysql_random_root_password

Docker Compose 环境变量:

https://docs.docker.com/compose/environment-variables/

编辑:替代方法 - 环境注入(inject)

这是一个示例替代策略,允许您对 MySQL 和 Django(或任何其他图像)使用随 secret 码。

您需要安装 pwgen在您的 主持人 系统使用 brew、apt 或 yum,然后生成密码,将其设置为环境变量。您可以随时重新运行以更改密码。
export DB_PASSWORD=`pwgen -Bs1 12`

简体 docker-compose.yml :
version: '2'
services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
      MYSQL_DATABASE: db_name
      MYSQL_USER: user
      MYSQL_PASSWORD: user_password

  web:
    image: django
    volumes:
      - ./django_admin.py:/app
    expose:
      - "8000"
    links:
      - db
    environment:
      DB_PASSWORD: ${DB_PASSWORD}

在您的 django_admin.py ,您现在可以使用 DB_PASSWORD环境变量:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_name',
        'USER': 'root',
        'PASSWORD': os.environ.get('DB_PASSWORD', ''),
        'HOST': 'host'
    }
}

关于docker-compose - 是否可以使用 docker compose 生成随机 mysql 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39706385/

相关文章:

windows - Docker:卷安装目录出现 "permission denied"错误

php - 在 Docker 容器上运行 phinx 命令时访问被拒绝

python - Docker-compose 无法导入 Django (ModuleNotFoundError)

javascript - docker 组成 : How to set env variable to use in a script

kubernetes - 大使API网关不提供服务

postgresql - 如何使用Ansible将转储导入docker容器中的postgres

sql-server - 升级到 WSL2 后映射卷时 MSSQL 容器无法启动

docker - 如何实现对 docker-compose.yml 所做的更改以分离运行的容器

docker - 使用多阶段 docker 文件输出多个图像

windows - 通过 docker-compose 将 build-args 传递给 Dockerfile 的奇怪行为