## 事象 [[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]] ただ、これらは再現性に乏しく、動くときと動かないときがあった。それまでの挙動によっても変わりそう。