簡體   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