## 事象
[[Windows]]にて、`docker logs`で以下のエラーが発生する。
```
mysql: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored
```
その状態でINSERTすると以下のエラーが出る。
```
World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored
```
## 原因
設定ファイルが作成者以外からも書き込み可能になっているのが問題。
## 対策
[[Dockerfile]]でconfファイルを追加して権限設定しておけばいい。
```docker
FROM mysql:latest
ADD ./my.cnf /etc/mysql/my.cnf
RUN chmod 644 /etc/mysql/my.cnf
```
`compose.yml`では`build`で[[Dockerfile]]のディレクトリを指定するだけ。
```yaml
services:
transport:
build: ./resources/mydb
restart: always
ports:
- "13306:3306"
environment:
TZ: Asia/Tokyo
MYSQL_DATABASE: mydb
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
volumes:
- ./resources/mydb/initdb.d:/docker-entrypoint-initdb.d
```
## 参考
- [【Windows】docker\-composeを使ってmy\.cnfの共有は気を付けよう!(🍣=🍺問題など) \- Qiita](https://qiita.com/koyo-miyamura/items/4d1430b9086c5d4a58a5)
## やってもダメだったこと
### volumeの`:ro`指定
少なくとも[[MySQL]]コンテナでは意味がなかった。
### `読み取り専用`属性を有効にする
以下を有効にすればOKという情報が多かった。
![[Pasted image 20220515190100.png]]
ただ、これらは再現性に乏しく、動くときと動かないときがあった。それまでの挙動によっても変わりそう。