[英]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.