我读过很多关于这方面的例子,但我还是无法克服这个问题。我的docker-compose.yml中定义了服务。我想向db (mysql)服务添加一个卷,这样我就可以定义自定义配置。
#docker-compose.yml
version: '2'
services:
# local db
db:
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- ./data/mysql:/var/lib/mysql
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/custom.cnf
environment:
MYSQL_ROOT_PASSWORD: myrootpassword
MYSQL_DATABASE: mydatabase
MYSQL_USER: myuser
MYSQL_PASSWORD: mypassword文件结构看起来像这样,我认为相对路径很好:
app/
├─ docker/
│ ├─ mysql/
│ │ ├─ my.cnf
├─ docker-compose.yml这是./docker/mysql/my.cnf的内容
[mysqld]
sql-mode=""
sql_mode=""设置好容器后,我在db容器中运行:SELECT @@sql_mode;,我看到的是缺省配置,而不是custom.cnf中被覆盖的配置。当我尝试读取/etc/mysql/conf.d/custom.cnf的内容时,我得到的是cat: custom.cnf: Is a directory
我做错了什么,你能帮我吗?(额外信息:我是Docker的新手。)
发布于 2021-04-14 02:16:19
您可以在特定服务下的env_file变量中定义自定义配置文件。
services:
# local db
db:
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- ./data/mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: myrootpassword
MYSQL_DATABASE: mydatabase
MYSQL_USER: myuser
MYSQL_PASSWORD: mypassword
env_file:
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/custom.cnfhttps://stackoverflow.com/questions/67079549
复制相似问题