mysql - 如何使用env_file在docker-compose中隐藏Mysql密码

标签 mysql docker docker-compose

version: '3'

services:
  db:
    image: "mysql:5.7"
    volumes:
      - data-mysql:/var/lib/mysql

    ports:
      - '3306:3306'

    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

volumes:
  data-mysql:
    driver: local

谢谢
曼尼

最佳答案

不需要环境文件。如果仅在docker compose environment定义中使用变量名,则其值将自动从主机传输到容器:

services:
  db:
    image: "mysql:5.7"
    ports: ['3306:3306']
    environment:
      MYSQL_ROOT_PASSWORD: 

documentation:

Environment variables with only a key are resolved to their values on the machine Compose is running on, which can be helpful for secret or host-specific values.



如果由于某种原因您想要或需要使用一个环境文件,您还可以:
services:
  db:
    image: "mysql:5.7"
    ports: ['3306:3306']
    env_file:
    - production.env

并在production.env文件(或任何您命名的文件)中,只需放入key=value行:
MYSQL_ROOT_PASSWORD=7op-s3cr37

另请参见The “env_file” configuration option

关于mysql - 如何使用env_file在docker-compose中隐藏Mysql密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61286800/

相关文章:

本地驱动程序的 docker-compose 卷语法以挂载文件

Docker - 需要特定的 docker 服务版本

postgresql - Docker - 如何在 postgres 容器中运行 psql 命令?

java - mysql查询的复用

python - mysql.connector.errors.ProgrammingError : 1064

docker - 去构建 docker : unexpected binary in/go/bin

docker - 无法拉取 docker 镜像 - 找不到存储库

MySQL:如何根据最高修订号计算数据记录集?

sql - 有没有办法在 SQL 中按日期的一部分进行选择?

docker - docker-compose up 完成后显示消息成功