質問編集履歴

2

ログを解析して、質問内容を変更

2018/03/12 02:27

投稿

HideakiOshima
HideakiOshima

スコア16

test CHANGED
@@ -1 +1 @@
1
- SQLファイルのCreate文のsyntax errorが解決でき
1
+ docker stackをdeployしようとした時に、file not foundにってしまう
test CHANGED
@@ -4,23 +4,33 @@
4
4
 
5
5
  現在、k8sを使ってTodoアプリを作成してみようと思い、DBの作成を行っています。
6
6
 
7
+ その時に、mysql.cnfにserver-idを設定する用のshell scriptを書き、server-idを一意に決めたい。
8
+
7
9
 
8
10
 
9
11
  ### 発生している問題・エラーメッセージ
10
12
 
11
- テーブルを作成するSQLをSQLファイルに記述したのですが、syntax errorが表示されてうまくdbを作成できない状況となっています。
13
+ ~~テーブルを作成するSQLをSQLファイルに記述したのですが、syntax errorが表示されてうまくdbを作成できない状況となっています。~~
12
14
 
13
15
 
14
16
 
15
- ```sql
17
+ もとはSQLのエラーだと思っていたのですが、改めてdocker serviceのログを参照してみると、add-server-id.shが見るからないと表示されていることがわかりました。
16
18
 
17
- Incorrect syntax near 'UNSIGNED'.'
19
+ ということは、設定したpathが変になっている??と思うのですが、それがどこが変なのかわからないのでご教授いただきたいです。
18
20
 
19
- Incorrect syntax near '188'. Expecting '(', or SELECT.
20
21
 
21
- Incorrect syntax near ''TODO''. Expecting '(', or SELECT.
22
22
 
23
+ ```bash
24
+
23
- Incorrect syntax near '`'. Expecting '(', or SELECT.
25
+ $ docker exec -it manager docker service logs kmiosg06sg2w [11:05:44]
26
+
27
+ todo_mysql_master.1.iet43na698h4@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH
28
+
29
+ todo_mysql_master.1.vacgbuxmhpd8@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH
30
+
31
+ todo_mysql_master.1.ms5joug8lki4@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH
32
+
33
+ todo_mysql_master.1.ifedudbqy6rb@9d9629c9e6dc | !! exec: "add-server-id.sh": executable file not found in $PATH
24
34
 
25
35
  ```
26
36
 
@@ -28,35 +38,91 @@
28
38
 
29
39
  ### 該当のソースコード
30
40
 
41
+ dockerfileはしたの様に記述しています。
42
+
43
+ ```Dockerfile
44
+
45
+ FROM mysql:5.7
31
46
 
32
47
 
33
- ```sql
34
48
 
35
- CREATE TABLE todo (
49
+ RUN apt-get update
36
50
 
37
- id INT(10) UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'ID',
51
+ RUN apt-get install -y wget telnet
38
52
 
39
- title VARCHAR(188) NOT NULL COMMENT 'タイトル',
53
+ RUN wget https://github.com/progrium/entrykit/releases/download/v0.4.0/entrykit_0.4.0_linux_x86_64.tgz
40
54
 
41
- content TEXT COMMENT '内容',
55
+ RUN tar -xvzf entrykit_0.4.0_linux_x86_64.tgz
42
56
 
43
- `status` ENUM ('TODO', 'PROGRESS', 'DONE') COMMENT 'ステータス',
57
+ RUN rm entrykit_0.4.0_linux_x86_64.tgz
44
58
 
45
- created DATETIME NOT NULL COMMENT '作成時間',
59
+ RUN mv entrykit /usr/local/bin/
46
60
 
47
- updated DATETIME NOT NULL COMMENT '更新時間',
61
+ RUN entrykit --symlink
48
62
 
49
- PRIMARY KEY (`id`)
50
63
 
64
+
51
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
65
+ ADD add-server-id.sh /usr/local/bin/
66
+
67
+ ADD init-data.sh /usr/local/bin/
68
+
69
+ ADD etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/
70
+
71
+ ADD prepare.sh /docker-entrypoint-initdb.d
72
+
73
+ ADD sql /sql
74
+
75
+
76
+
77
+ ENTRYPOINT [ \
78
+
79
+ "prehook", \
80
+
81
+ "add-server-id.sh", \
82
+
83
+ "--", \
84
+
85
+ "docker-entrypoint.sh" \
86
+
87
+ ]
88
+
89
+
90
+
91
+ CMD ["mysqld"]
52
92
 
53
93
  ```
54
94
 
55
95
 
56
96
 
57
- ### 試したこと
97
+ 全体のディレクトリ構成は以下のようになっています。
58
98
 
99
+ ```
100
+
101
+ swarm-sample
102
+
103
+ |-etc/
104
+
105
+ | └mysql/
106
+
59
- カラム名などにバッククォートを付けてみるといったことも試しましたが、改善されずといった幹事でした。
107
+ | └mysql.conf.d/
108
+
109
+ | └mysqld.cnf
110
+
111
+ |-stack/
112
+
113
+ | └todo-mysql.yml
114
+
115
+ |-Dockerfile
116
+
117
+ |-add-server-id.sh
118
+
119
+ |-init-data.sh
120
+
121
+ |-prepare.sh
122
+
123
+ ```
124
+
125
+
60
126
 
61
127
 
62
128
 

1

タグを追加

2018/03/12 02:27

投稿

HideakiOshima
HideakiOshima

スコア16

test CHANGED
File without changes
test CHANGED
File without changes