tl;dr
リードレプリカの command
に --read-only
をつければよい
services: primary: image: mariadb command: --log-bin --log-basename=mariadb --rpl_semi_sync_master_enabled replica: image: mariadb command: --server-id=3 --log-basename=mariadb --rpl_semi_sync_slave_enabled --read-only environment: MARIADB_MASTER_HOST: primary
参考文献
- 公式の Docker イメージ
https://hub.docker.com/_/mariadb
mariadb-docker/examples/compose-replication-semisync.yml at master · MariaDB/mariadb-docker · GitHub
Docker Official Image Frequently Asked Questions - MariaDB Knowledge Base
- read-only を指定したらええんやで、というナレッジベース
Read-Only Replicas - MariaDB Knowledge Base
最初は my.cnf に書いて volume 指定で起動していたが、 書き込みできないことの動作確認で出たエラーが --read-only
って書いてあったのでそのままコマンド指定にした。
特に他にmy.cnf に書く用事もなかったので。