質問編集履歴

1

コードを書いていなかったので追加しました

2020/12/24 08:52

投稿

kawasaki4563
kawasaki4563

スコア32

test CHANGED
File without changes
test CHANGED
@@ -19,3 +19,325 @@
19
19
  と出てしまいました
20
20
 
21
21
  解決方法がわからないので教えて下さい
22
+
23
+
24
+
25
+ コードはこちらになります
26
+
27
+ ```dockerfile
28
+
29
+ FROM ruby:2.5.3
30
+
31
+
32
+
33
+ # 必要なパッケージのインストール(基本的に必要になってくるものだと思うので削らないこと)
34
+
35
+ RUN apt-get update -qq && \
36
+
37
+ apt-get install -y build-essential \
38
+
39
+ libpq-dev \
40
+
41
+ nodejs
42
+
43
+
44
+
45
+ # 作業ディレクトリの作成、設定
46
+
47
+ RUN mkdir /app_name
48
+
49
+ ##作業ディレクトリ名をAPP_ROOTに割り当てて、以下$APP_ROOTで参照
50
+
51
+ ENV APP_ROOT /app_name
52
+
53
+ WORKDIR $APP_ROOT
54
+
55
+
56
+
57
+ # ホスト側(ローカル)のGemfileを追加する(ローカルのGemfileは【3】で作成)
58
+
59
+ ADD ./Gemfile $APP_ROOT/Gemfile
60
+
61
+ ADD ./Gemfile.lock $APP_ROOT/Gemfile.lock
62
+
63
+
64
+
65
+ # Gemfileのbundle install
66
+
67
+ RUN bundle install
68
+
69
+ ADD . $APP_ROOT
70
+
71
+ ```
72
+
73
+ ```yml
74
+
75
+ version: '3.3'
76
+
77
+ services:
78
+
79
+ db:
80
+
81
+ image: mysql:5.7
82
+
83
+ environment:
84
+
85
+ MYSQL_ROOT_PASSWORD: password
86
+
87
+ MYSQL_DATABASE: root
88
+
89
+ ports:
90
+
91
+ - "3306:3306"
92
+
93
+
94
+
95
+ web:
96
+
97
+ build: .
98
+
99
+    command: rails s -p 3000 -b '0.0.0.0'
100
+
101
+ volumes:
102
+
103
+ - .:/app_name
104
+
105
+ ports:
106
+
107
+ - "3000:3000"
108
+
109
+ links:
110
+
111
+ - db
112
+
113
+ ```
114
+
115
+
116
+
117
+ 以下、docker-rails.sh
118
+
119
+ ```
120
+
121
+ #!/bin/bash
122
+
123
+
124
+
125
+ echo "docker pull ruby:2.5.3"
126
+
127
+ docker pull ruby:2.5.3
128
+
129
+
130
+
131
+ echo "docker pull mysql:5.7"
132
+
133
+ docker pull mysql:5.7
134
+
135
+
136
+
137
+ echo "docker images"
138
+
139
+ docker images
140
+
141
+
142
+
143
+ # make Dockerfile
144
+
145
+ cat <<'EOF' > Dockerfile
146
+
147
+ FROM ruby:2.5.3
148
+
149
+ ENV LANG C.UTF-8
150
+
151
+ RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs && rm -rf /var/lib/apt/lists/*
152
+
153
+ RUN gem install bundler
154
+
155
+ WORKDIR /tmp
156
+
157
+ COPY src/Gemfile Gemfile
158
+
159
+ COPY src/Gemfile.lock Gemfile.lock
160
+
161
+ RUN bundle install
162
+
163
+ ENV APP_HOME /app_name
164
+
165
+ RUN mkdir -p $APP_HOME
166
+
167
+ WORKDIR $APP_HOME
168
+
169
+ COPY . $APP_HOME
170
+
171
+ EOF
172
+
173
+
174
+
175
+
176
+
177
+ # make 'src' directory and cd 'src' directory
178
+
179
+ mkdir src && cd src
180
+
181
+
182
+
183
+
184
+
185
+ # make Gemfile
186
+
187
+ cat <<'EOF' > Gemfile
188
+
189
+ source 'https://rubygems.org'
190
+
191
+ gem 'rails'
192
+
193
+ EOF
194
+
195
+
196
+
197
+ # make Gemfile.lock()
198
+
199
+ touch Gemfile.lock
200
+
201
+
202
+
203
+
204
+
205
+ # cd ../
206
+
207
+ cd ../
208
+
209
+
210
+
211
+
212
+
213
+ # make docker-compose.yml
214
+
215
+ cat <<'EOF' > docker-compose.yml
216
+
217
+ version: '3'
218
+
219
+ services:
220
+
221
+ db:
222
+
223
+ image: mysql:5.7
224
+
225
+ volumes:
226
+
227
+ - ./src/db/mysql_data:/var/lib/mysql
228
+
229
+ environment:
230
+
231
+ - MYSQL_ROOT_PASSWORD=root
232
+
233
+ - MYSQL_DATABASE=root
234
+
235
+ ports:
236
+
237
+ - "3306:3306"
238
+
239
+ web:
240
+
241
+ build: .
242
+
243
+ command: rails s -p 3000 -b '0.0.0.0'
244
+
245
+ volumes:
246
+
247
+ - ./src:/app_name
248
+
249
+ ports:
250
+
251
+ - "3000:3000"
252
+
253
+ links:
254
+
255
+ - db
256
+
257
+ tty: true
258
+
259
+ stdin_open: true
260
+
261
+ EOF
262
+
263
+
264
+
265
+ echo "docker-compose run web rails new . --force --database=mysql --skip-bundle"
266
+
267
+ docker-compose run web rails new . --force --database=mysql --skip-bundle
268
+
269
+
270
+
271
+ # cd 'src'
272
+
273
+ cd src
274
+
275
+
276
+
277
+ # fix Gemfile
278
+
279
+ echo "fix Gemfile(uncoment mini_racer)"
280
+
281
+ cat Gemfile | sed "s/# gem 'mini_racer'/gem 'mini_racer'/" > __tmpfile__
282
+
283
+ cat __tmpfile__ > Gemfile
284
+
285
+ rm __tmpfile__
286
+
287
+
288
+
289
+
290
+
291
+ # cd ../
292
+
293
+ cd ../
294
+
295
+
296
+
297
+
298
+
299
+ docker-compose build
300
+
301
+
302
+
303
+ # cd src/
304
+
305
+ cd src/
306
+
307
+
308
+
309
+
310
+
311
+ # fix config/database.yml
312
+
313
+ echo "fix config/database.yml"
314
+
315
+ cat config/database.yml | sed 's/password:$/password: root/' | sed 's/host: localhost/host: db/' > __tmpfile__
316
+
317
+ cat __tmpfile__ > config/database.yml
318
+
319
+ rm __tmpfile__
320
+
321
+
322
+
323
+ # cd ../
324
+
325
+ cd ../
326
+
327
+
328
+
329
+
330
+
331
+ echo "docker-compose run web rake db:create"
332
+
333
+ docker-compose run web rake db:create
334
+
335
+
336
+
337
+ echo "docker-compose up"
338
+
339
+ docker-compose up
340
+
341
+
342
+
343
+ ```