前提・実現したいこと
・DockerでMySQLを構築したい。(構築のみであればできています)
・コンテナ起動時にコマンドを実行したい(★ここができない)
発生している問題・エラーメッセージ
Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
該当のソースコード
yaml
1version: '3' 2 3services: 4 db: 5 image: mysql:8 6 container_name: mysql 7 restart: always 8 environment: 9 MYSQL_ROOT_PASSWORD: ${ROOT_PASS} 10 MYSQL_DATABASE: ${DB_NAME} 11 MYSQL_USER: ${DB_USER} 12 MYSQL_PASSWORD: ${DB_PASS} 13 TZ: ${TZ} 14 ports: 15 - ${DB_PORT}:3306 16 tmpfs: 17 - /var/lib/mysql 18 volumes: 19 - ./startup.sh:/startup.sh 20 - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf 21 command: "/startup.sh" # ★コマンド実行を行わなければ、コンテナは起動します
startup.sh
1mysqld 2echo "test" # ★以降にいろいろコマンドを実行する想定
試したこと
①ymlファイルのcommand部分を
command: "mysqld"
の場合は、起動します
②以下のようにすると同じエラーが発生します
command: bash -c "mysqld && echo test"
③Dockerfile
のCMDのほうで実行させてみても同様でした
Dockefile
1FROM mysql:8 2 3EXPOSE 3306 4 5ADD ./conf/my.cnf /etc/mysql/conf.d/my.cnf 6COPY ./conf/start.sh /start.sh 7RUN chmod 744 /start.sh 8 9CMD ["/start.sh"]
④オプション付けてみた
以下のようにしても同じでした。
mysqld --user=root
⑤my.cnf修正してみる
https://qiita.com/yosida001/items/f7acb893843c550e0074
で書いてあった
my.cnf
にuser=mysql を追加して実行すると
mysql | 2022-02-10T13:14:11.672889Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory. mysql | 2022-02-10T13:14:11.673085Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. mysql | 2022-02-10T13:14:11.673148Z 0 [ERROR] [MY-010119] [Server] Aborting
と今度は別のエラーになってしまいました。
他に試せることありましたらお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。