centos/mysql-56-centos7 i镜像是docker hub上的一个镜像,我用如下两种方式去启动相应容器
1)
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-56-centos7
这个启动容器成功
2) docker-compose.yml
version: '2'
services:
mysql:
image: centos/mysql-56-centos7:latest
restart: always
container_name: mysql
环境配置文件 .env 有如下内容
MYSQL_ROOT_PASSWORD=123456
这种方式启动总是失败
`
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 829edd047341a88cb5052f8635967ab5879f2064b6b1c461e1665529135e75c1 centos/mysql-56-centos7 "container-entrypoint run-mysqld" 49 minutes ago Up 49 minutes 3306/tcp mysql
`
相应日志:
mysql | => sourcing 20-validate-variables.sh ...
mysql | You must either specify the following environment variables:
mysql | MYSQL_USER (regex: '^[a-zA-Z0-9_]+$')
mysql | MYSQL_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
mysql | MYSQL_DATABASE (regex: '^[a-zA-Z0-9_]+$')
mysql | Or the following environment variable:
mysql | MYSQL_ROOT_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
mysql | Or both.
mysql | Optional Settings:
mysql | MYSQL_LOWER_CASE_TABLE_NAMES (default: 0)
mysql | MYSQL_LOG_QUERIES_ENABLED (default: 0)
mysql | MYSQL_MAX_CONNECTIONS (default: 151)
mysql | MYSQL_FT_MIN_WORD_LEN (default: 4)
mysql | MYSQL_FT_MAX_WORD_LEN (default: 20)
mysql | MYSQL_AIO (default: 1)
mysql | MYSQL_KEY_BUFFER_SIZE (default: 32M or 10% of available memory)
mysql | MYSQL_MAX_ALLOWED_PACKET (default: 200M)
mysql | MYSQL_TABLE_OPEN_CACHE (default: 400)
mysql | MYSQL_SORT_BUFFER_SIZE (default: 256K)
mysql | MYSQL_READ_BUFFER_SIZE (default: 8M or 5% of available memory)
mysql | MYSQL_INNODB_BUFFER_POOL_SIZE (default: 32M or 50% of available memory)
mysql | MYSQL_INNODB_LOG_FILE_SIZE (default: 8M or 15% of available memory)
mysql | MYSQL_INNODB_LOG_BUFFER_SIZE (default: 8M or 15% of available memory)
mysql |
mysql | For more information, see https://github.com/sclorg/mysql-container
我认为这两种是等同的,但是一个成功一个失败怎么回事?
BTW,把.env的环境变量放到docker-compose.yml文件中的 environment 中去也不行
你的 yaml 里也没指定加载环境变量啊……
要么:
要么:
要么就像楼上的,直接在 YAML 里指定环境变量。