首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用dockercompose生成随机的mysql密码

是否可以使用dockercompose生成随机的mysql密码
EN

Stack Overflow用户
提问于 2016-09-26 23:10:42
回答 1查看 11.4K关注 0票数 4

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

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-27 07:14:45

您可以通过环境变量MYSQL_RANDOM_ROOT_PASSWORD为mysql设置随机密码。

MYSQL_RANDOM_ROOT_PASSWORD

这是一个可选变量。设置为yes可为root用户(使用pwgen)生成随机初始密码。生成的root密码将打印到stdout (生成的ROOT密码:.....)。

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

Docker Compose环境变量:

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

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

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

您需要使用brew、apt或yum在主机系统上安装pwgen,然后生成一个将其设置为环境变量的密码。您可以随时重新运行此命令以更改密码。

代码语言:javascript
复制
export DB_PASSWORD=`pwgen -Bs1 12`

简化的docker-compose.yml

代码语言:javascript
复制
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环境变量:

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_name',
        'USER': 'root',
        'PASSWORD': os.environ.get('DB_PASSWORD', ''),
        'HOST': 'host'
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39706385

复制
相关文章

相似问题

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