質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

452閲覧

docker stackをdeployしようとした時に、file not foundになってしまう

HideakiOshima

総合スコア16

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/03/12 01:13

編集2018/03/12 02:27

前提・実現したいこと

現在、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

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/03/12 01:31

提示のSQLをphpmyadmin上で実行したところ正常にテーブルができあがりました。MySQLのエラーではないように思います。実行しているプログラム側でエスケープが正常にされていないとか、その辺りではないでしょうか。
HideakiOshima

2018/03/12 01:46

やはりSQLの問題ではなく、別の所で問題が起きている可能性が高いのですね。検証してみます!ありがとう御座います!
guest

回答2

0

sqlの書き方の問題ではなく、別の問題でした!
パスを見直したらできました!ありがとうございました!

投稿2018/03/15 09:06

HideakiOshima

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

調べてみたところ、Incorrect syntax near ...というエラーはMySQLのものではなさそうです(MySQLでは、シンタックスエラーはYou have an error in your SQL syntaxのようなメッセージを出します)。

本当にMySQLにアクセスしているのか、再確認した方がいいかもしれません。

投稿2018/03/12 01:21

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HideakiOshima

2018/03/12 01:45

なるほど! MySQLではなく別の問題な可能性があるということですね! ちょっと調べてみます!ありがとう御座います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問