繁体   English   中英

docker 撰写 - mysql - 密码

[英]docker compose - mysql - password

我有 docker-compose 文件

version: '3.5'

services:
  db:
    image: itaybeyder/mysql:2
    # secrets:
    #   - MYSQL_ROOT_PASSWORD
    hostname: mysql
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: run/secrets/MYSQL_ROOT_PASSWORD.txt

      MYSQL_DATABASE: crud
    networks:
        - app
    ports:
      - "3306:3306"
    command: --init-file /data/application/crud.sql

    volumes:
      - ./data/crud.sql:/data/application/crud.sql
      - ./data/MYSQL_ROOT_PASSWORD.txt:/run/secrets/MYSQL_ROOT_PASSWORD.txt
networks:
    app:
        external: false

# secrets:
#   MYSQL_ROOT_PASSWORD:
#     external: true

在卷中(我电脑中的本地文件夹)我有 mysql ROOT 的密码

volumes:
      
      - ./data/MYSQL_ROOT_PASSWORD.txt:/run/secrets/MYSQL_ROOT_PASSWORD.txt

我正在尝试将它传递给环境 - MYSQL_ROOT_PASSWORD,但我收到错误:

mysql  | 2021-12-26 16:27:10+00:00 [ERROR] [Entrypoint]: Both MYSQL_ROOT_PASSWORD and MYSQL_ROOT_PASSWORD_FILE are set (but are exclusive)

当我使用docker 堆栈时,它可以工作,但我想将它与 docker-compose 一起使用。

我的问题:我怎样才能通过 ENV 的 ROOT 密码

环境:MYSQL_ROOT_PASSWORD

文件将自己放在容器中,,? 我将文件从主机复制到容器,我希望他从本地路径读取,这可能吗?

其他方式,最简单,如何将主机中的本地密码传输到 MYSQL_ROOT_PASSWORD 的 ENV?

您可以在docker-compose.yaml文件的同一目录中创建一个.env文件。

.env

MYSQL_ROOT_PASSWORD=SUPER_STRONG_PASSWORD

然后在你的docker-compose.yaml你可以这样指定它:

    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

您可以使用docker-compose config来检查您的配置是否已应用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM