前提・実現したいこと
現在、k8sを使ってTodoアプリを作成してみようと思い、DBの作成を行っています。
その時に、mysql.cnfにserver-idを設定する用のshell scriptを書き、server-idを一意に決めたい。
発生している問題・エラーメッセージ
テーブルを作成するSQLをSQLファイルに記述したのですが、syntax errorが表示されてうまくdbを作成できない状況となっています。
もとはSQLのエラーだと思っていたのですが、改めてdocker serviceのログを参照してみると、add-server-id.shが見るからないと表示されていることがわかりました。
ということは、設定したpathが変になっている??と思うのですが、それがどこが変なのかわからないのでご教授いただきたいです。
bash
1$ docker exec -it manager docker service logs kmiosg06sg2w [11:05:44] 2todo_mysql_master.1.iet43na698h4@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH 3todo_mysql_master.1.vacgbuxmhpd8@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH 4todo_mysql_master.1.ms5joug8lki4@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH 5todo_mysql_master.1.ifedudbqy6rb@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH
該当のソースコード
dockerfileはしたの様に記述しています。
Dockerfile
1FROM mysql:5.7 2 3RUN apt-get update 4RUN apt-get install -y wget telnet 5RUN wget https://github.com/progrium/entrykit/releases/download/v0.4.0/entrykit_0.4.0_linux_x86_64.tgz 6RUN tar -xvzf entrykit_0.4.0_linux_x86_64.tgz 7RUN rm entrykit_0.4.0_linux_x86_64.tgz 8RUN mv entrykit /usr/local/bin/ 9RUN entrykit --symlink 10 11ADD add-server-id.sh /usr/local/bin/ 12ADD init-data.sh /usr/local/bin/ 13ADD etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/ 14ADD prepare.sh /docker-entrypoint-initdb.d 15ADD sql /sql 16 17ENTRYPOINT [ \ 18 "prehook", \ 19 "add-server-id.sh", \ 20 "--", \ 21 "docker-entrypoint.sh" \ 22 ] 23 24CMD ["mysqld"]
全体のディレクトリ構成は以下のようになっています。
swarm-sample |-etc/ | └mysql/ | └mysql.conf.d/ | └mysqld.cnf |-stack/ | └todo-mysql.yml |-Dockerfile |-add-server-id.sh |-init-data.sh |-prepare.sh
補足情報(FW/ツールのバージョンなど)
使用したmysqlのdocker image→ mysql:5.7
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー