はじめに
Dockerで開発していた際、標記エラーが発生。対策方法を探し、解決できたので記録として残しておく。
Error文
mbind: Operation not permitted
mbind: Operation not permitted
mbind: Operation not permitted
概要
Docker 開発環境
Docker : v3.8
Ruby : v 3.0
Rails(API) : v 6.1.4
React : 0.1.0
MYSQL: 8.0
状況
- ReactでSPAアプリ開発時、サーバーサイド側ではRails APIでdevise_token_authを使い、サインアップ機能を実装。その動作確認をする時に以下エラーが出た、という状況です。通信にはReact側でaxiosモジュールを使用。
- エラーは出ますが、問題なくDBにはデータを保存できていました。しかしながら、謎のエラー文が(しかも3行も)出続けるし、放置しておくのは気持ちが悪かった。
解決方法
services:
db:
image: mysql:8.0
volumes:
- db-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
// ここから追加
cap_add:
- SYS_NICE
// ここまで追加
参考にしたGithub上での回答や参考にした記事にもありますが、特定のNUMA操作ができなくなってしまうようです。
追加してエラーを回避しておくに越したことはなさそうです。ご参考まで。
参考
mysql 8.0.11 docker: mbind: Operation not permitted #422
https://github.com/docker-library/mysql/issues/422
DockerのMySQLで「mbind: Operation not permitted」が出る件
https://selfnote.work/20210315/programming/mysql-docker-error-mbind/