dockerize_rails 1.0.3.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.codeclimate.yml +19 -0
- data/.gitignore +20 -0
- data/.reek +24 -0
- data/.rspec +2 -0
- data/.rubocop.yml +41 -0
- data/.travis.yml +10 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/CONTRIBUTORS.md +1 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +50 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/config/database.yml +28 -0
- data/dockerize_rails.gemspec +39 -0
- data/exe/dock +3 -0
- data/lib/dockerize_rails/command_line.rb +7 -0
- data/lib/dockerize_rails/command_line_methods.rb +63 -0
- data/lib/dockerize_rails/config_generator.rb +135 -0
- data/lib/dockerize_rails/config_loader.rb +32 -0
- data/lib/dockerize_rails/constants.rb +48 -0
- data/lib/dockerize_rails/docker_helper.rb +9 -0
- data/lib/dockerize_rails/dr_config.rb +149 -0
- data/lib/dockerize_rails/dr_name_space.rb +54 -0
- data/lib/dockerize_rails/helpers.rb +62 -0
- data/lib/dockerize_rails/paths.rb +51 -0
- data/lib/dockerize_rails/templates.rb +27 -0
- data/lib/dockerize_rails/version.rb +3 -0
- data/lib/dockerize_rails.rb +29 -0
- data/resources/.dockerignore.erb +25 -0
- data/resources/docker-compose.yml.erb +47 -0
- data/resources/dockerw.erb +315 -0
- data/resources/mysql/Dockerfile.erb +3 -0
- data/resources/mysql/sql/initdb-mysql.sql.erb +9 -0
- data/resources/postgresql/Dockerfile.erb +1 -0
- data/resources/rails/Dockerfile.erb +26 -0
- data/resources/rails/entry-point.sh.erb +26 -0
- data/resources/rails/secrets.yml.erb +8 -0
- data/sideci.yml +5 -0
- metadata +170 -0
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
RAILS_APP_NAME="<%= application_name %>_rails"
|
|
4
|
+
MYSQL_APP_NAME="<%= application_name %>_mysql"
|
|
5
|
+
POSTGRESQL_APP_NAME="<%= application_name %>_postgresql"
|
|
6
|
+
SERVICE_NAME_POSTFIX="_service"
|
|
7
|
+
|
|
8
|
+
build() {
|
|
9
|
+
if docker images | grep "${RAILS_APP_NAME}" > /dev/null; then
|
|
10
|
+
echo "<%= ' ==> Image ${RAILS_APP_NAME} already exists'.blue %>"
|
|
11
|
+
else
|
|
12
|
+
echo "<%= ' ==> Building ${RAILS_APP_NAME}'.blue %>"
|
|
13
|
+
docker build \
|
|
14
|
+
-t ${RAILS_APP_NAME} \
|
|
15
|
+
-f ./<%= "#{Constants::CONFIG_DIRECTORY_NAME}/rails/Dockerfile" %> . > /dev/null
|
|
16
|
+
fi
|
|
17
|
+
<% if DRConfig.linked_database? %>
|
|
18
|
+
<% if databases[application_env] == 'mysql' %>
|
|
19
|
+
if docker images | grep "${MYSQL_APP_NAME}" > /dev/null; then
|
|
20
|
+
echo "<%= ' ==> Image ${MYSQL_APP_NAME} already exists'.blue %>"
|
|
21
|
+
else
|
|
22
|
+
echo "<%= ' ==> Building ${MYSQL_APP_NAME}'.blue %>"
|
|
23
|
+
docker build \
|
|
24
|
+
-t ${MYSQL_APP_NAME} \
|
|
25
|
+
-f ./<%= "#{Constants::CONFIG_DIRECTORY_NAME}/#{databases[application_env]}/Dockerfile" %> . > /dev/null
|
|
26
|
+
fi
|
|
27
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
28
|
+
if docker images | grep "${POSTGRESQL_APP_NAME}" > /dev/null; then
|
|
29
|
+
echo "<%= ' ==> Image ${POSTGRESQL_APP_NAME} already exists'.blue %>"
|
|
30
|
+
else
|
|
31
|
+
echo "<%= ' ==> Building ${POSTGRESQL_APP_NAME}'.blue %>"
|
|
32
|
+
docker build \
|
|
33
|
+
-t ${POSTGRESQL_APP_NAME} \
|
|
34
|
+
-f ./<%= "#{Constants::CONFIG_DIRECTORY_NAME}/#{databases[application_env]}/Dockerfile" %> . > /dev/null
|
|
35
|
+
fi
|
|
36
|
+
<% end %>
|
|
37
|
+
<% end %>
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
rebuild() {
|
|
41
|
+
destroy
|
|
42
|
+
build
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
destroy(){
|
|
46
|
+
stop > /dev/null
|
|
47
|
+
remove > /dev/null
|
|
48
|
+
if docker images | grep "${RAILS_APP_NAME}" > /dev/null; then
|
|
49
|
+
echo "<%= ' ==> Destroying ${RAILS_APP_NAME}'.yellow %>"
|
|
50
|
+
docker rmi ${RAILS_APP_NAME} > /dev/null
|
|
51
|
+
else
|
|
52
|
+
echo "<%= ' ==> Image ${RAILS_APP_NAME} does not exists'.yellow %>"
|
|
53
|
+
fi
|
|
54
|
+
<% if DRConfig.linked_database? %>
|
|
55
|
+
<% if databases[application_env] == 'mysql' %>
|
|
56
|
+
if docker images | grep "${MYSQL_APP_NAME}" > /dev/null; then
|
|
57
|
+
echo "<%= ' ==> Destroying ${MYSQL_APP_NAME}'.yellow %>"
|
|
58
|
+
docker rmi ${MYSQL_APP_NAME} > /dev/null
|
|
59
|
+
else
|
|
60
|
+
echo "<%= ' ==> Image ${MYSQL_APP_NAME} does not exists'.yellow %>"
|
|
61
|
+
fi
|
|
62
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
63
|
+
if docker images | grep "${POSTGRESQL_APP_NAME}" > /dev/null; then
|
|
64
|
+
echo "<%= ' ==> Destroying ${POSTGRESQL_APP_NAME}'.yellow %>"
|
|
65
|
+
docker rmi ${POSTGRESQL_APP_NAME} > /dev/null
|
|
66
|
+
else
|
|
67
|
+
echo "<%= ' ==> Image ${POSTGRESQL_APP_NAME} does not exists'.yellow %>"
|
|
68
|
+
fi
|
|
69
|
+
<% end %>
|
|
70
|
+
<% end %>
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
remove(){
|
|
74
|
+
stop > /dev/null
|
|
75
|
+
if docker ps -a | grep "${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
76
|
+
echo "<%= ' ==> Removing service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}'.yellow %>"
|
|
77
|
+
docker rm ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
78
|
+
else
|
|
79
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists'.yellow %>"
|
|
80
|
+
fi
|
|
81
|
+
<% if DRConfig.linked_database? %>
|
|
82
|
+
<% if databases[application_env] == 'mysql' %>
|
|
83
|
+
if docker ps -a | grep "${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
84
|
+
echo "<%= ' ==> Removing servic ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.yellow %>"
|
|
85
|
+
docker rm ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
86
|
+
else
|
|
87
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists'.yellow %>"
|
|
88
|
+
fi
|
|
89
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
90
|
+
if docker ps -a | grep "${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
91
|
+
echo "<%= ' ==> Removing service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.yellow %>"
|
|
92
|
+
docker rm ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
93
|
+
else
|
|
94
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists'.yellow %>"
|
|
95
|
+
fi
|
|
96
|
+
<% end %>
|
|
97
|
+
<% end %>
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
create() {
|
|
101
|
+
<% if DRConfig.linked_database? %>
|
|
102
|
+
<% if databases[application_env] == 'mysql' %>
|
|
103
|
+
|
|
104
|
+
if docker images | grep "${MYSQL_APP_NAME}" > /dev/null; then
|
|
105
|
+
if docker ps -a | grep "${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
106
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} already created. Starting instead'.blue %>"
|
|
107
|
+
else
|
|
108
|
+
echo "<%= ' ==> Creating service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
109
|
+
docker run -d --name ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} \
|
|
110
|
+
--env MYSQL_ROOT_PASSWORD=root \
|
|
111
|
+
--env MYSQL_USER=user \
|
|
112
|
+
--env MYSQL_PASSWORD=pass \
|
|
113
|
+
--publish 3300:3306 \
|
|
114
|
+
--volume <%= File.join(PATHS.config_directory, databases[application_env], Constants::DATA_DIRECTORY_NAME) %>:/var/lib/<%= databases[application_env] %> \
|
|
115
|
+
${MYSQL_APP_NAME} > /dev/null
|
|
116
|
+
fi
|
|
117
|
+
echo -ne "<%= ' ==> Waiting for database server to start properly ...'.blue %>"
|
|
118
|
+
for i in {1..20}; do echo -ne '.'; sleep 1; done; echo
|
|
119
|
+
|
|
120
|
+
else
|
|
121
|
+
|
|
122
|
+
echo "<%= ' ==> Image ${MYSQL_APP_NAME} does not exists. Build first'.red %>"
|
|
123
|
+
exit 1
|
|
124
|
+
|
|
125
|
+
fi
|
|
126
|
+
|
|
127
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
128
|
+
|
|
129
|
+
if docker images | grep "${POSTGRESQL_APP_NAME}" > /dev/null; then
|
|
130
|
+
if docker ps -a | grep "${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
131
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} already created. Starting instead'.blue %>"
|
|
132
|
+
else
|
|
133
|
+
echo "<%= ' ==> Creating service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
134
|
+
docker run -d --name ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} \
|
|
135
|
+
--env POSTGRES_USER=user \
|
|
136
|
+
--env POSTGRES_PASSWORD=pass \
|
|
137
|
+
--publish 5400:5432
|
|
138
|
+
--volume <%= File.join(PATHS.config_directory, databases[application_env], Constants::DATA_DIRECTORY_NAME) %>:/var/lib/<%= databases[application_env] %> \
|
|
139
|
+
${POSTGRESQL_APP_NAME} > /dev/null
|
|
140
|
+
fi
|
|
141
|
+
echo -ne "<%= ' ==> Waiting for database server to start properly ...'.blue %>"
|
|
142
|
+
for i in {1..20}; do echo -ne '.'; sleep 1; done; echo
|
|
143
|
+
else
|
|
144
|
+
|
|
145
|
+
echo "<%= ' ==> Image ${POSTGRESQL_APP_NAME} does not exists. Build first'.red %>"
|
|
146
|
+
exit 1
|
|
147
|
+
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
<% end %>
|
|
151
|
+
<% end %>
|
|
152
|
+
|
|
153
|
+
if docker images | grep "${RAILS_APP_NAME}" > /dev/null; then
|
|
154
|
+
if docker ps -a | grep "${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
155
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} already created. Starting instead'.blue %>"
|
|
156
|
+
else
|
|
157
|
+
echo "<%= ' ==> Creating service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
158
|
+
docker run -d --name ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} \
|
|
159
|
+
<% if DRConfig.linked_database? %>
|
|
160
|
+
<% if databases[application_env] == 'mysql' %>
|
|
161
|
+
--link ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}:databasehost \
|
|
162
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
163
|
+
--link ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}:databasehost \
|
|
164
|
+
<% end %>
|
|
165
|
+
<% end %>
|
|
166
|
+
--publish 5000:5000 \
|
|
167
|
+
--expose 5000 \
|
|
168
|
+
${RAILS_APP_NAME} > /dev/null
|
|
169
|
+
fi
|
|
170
|
+
else
|
|
171
|
+
echo "<%= ' ==> Image ${RAILS_APP_NAME} does not exists. Build first'.red %>"
|
|
172
|
+
fi
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
recreate() {
|
|
176
|
+
remove > /dev/null
|
|
177
|
+
create
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
status(){
|
|
181
|
+
<% if DRConfig.linked_database? %>
|
|
182
|
+
<% if databases[application_env] == 'mysql' %>
|
|
183
|
+
if docker ps | grep "${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
184
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} started'.blue %>"
|
|
185
|
+
elif docker ps -a | grep "${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
186
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} not started'.blue %>"
|
|
187
|
+
else
|
|
188
|
+
if docker images | grep "${MYSQL_APP_NAME}" > /dev/null; then
|
|
189
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists. Consider creating'.yellow %>"
|
|
190
|
+
else
|
|
191
|
+
echo "<%= ' ==> Image ${MYSQL_APP_NAME} does not exists. Consider building'.yellow %>"
|
|
192
|
+
fi
|
|
193
|
+
fi
|
|
194
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
195
|
+
if docker ps | grep "${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
196
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} started'.blue %>"
|
|
197
|
+
elif docker ps -a | grep "${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
198
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} not started'.blue %>"
|
|
199
|
+
else
|
|
200
|
+
if docker images | grep "${POSTGRESQL_APP_NAME}" > /dev/null; then
|
|
201
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists. Consider creating'.yellow %>"
|
|
202
|
+
else
|
|
203
|
+
echo "<%= ' ==> Image ${POSTGRESQL_APP_NAME} does not exists. Consider building'.yellow %>"
|
|
204
|
+
fi
|
|
205
|
+
fi
|
|
206
|
+
<% end %>
|
|
207
|
+
<% end %>
|
|
208
|
+
if docker ps | grep "${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
209
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} started'.blue %>"
|
|
210
|
+
elif docker ps -a | grep "${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
211
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} not started'.blue %>"
|
|
212
|
+
else
|
|
213
|
+
if docker images | grep "${RAILS_APP_NAME}" > /dev/null; then
|
|
214
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists. Consider creating'.yellow %>"
|
|
215
|
+
else
|
|
216
|
+
echo "<%= ' ==> Image ${RAILS_APP_NAME} does not exists. Consider building'.yellow %>"
|
|
217
|
+
fi
|
|
218
|
+
fi
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
ps(){
|
|
222
|
+
cc=`docker ps | grep "bi_tool_mysql_service\|bi_tool_rails_service\|NAMES" | wc -l | tr -d ' \n'`
|
|
223
|
+
if [[ "$cc" == "3" ]] ; then
|
|
224
|
+
docker ps | grep "bi_tool_mysql_service\|bi_tool_rails_service\|NAMES"
|
|
225
|
+
else
|
|
226
|
+
docker ps -a | grep "bi_tool_mysql_service\|bi_tool_rails_service\|NAMES"
|
|
227
|
+
fi
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
start(){
|
|
231
|
+
<% if DRConfig.linked_database? %>
|
|
232
|
+
<% if databases[application_env] == 'mysql' %>
|
|
233
|
+
if docker ps | grep "${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
234
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} already started'.blue %>"
|
|
235
|
+
elif docker ps -a | grep "${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
236
|
+
echo "<%= ' ==> Starting service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
237
|
+
docker start ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
238
|
+
echo -ne "<%= ' ==> Waiting for database server to start properly ...'.blue %>"
|
|
239
|
+
for i in {1..20}; do echo -ne '.'; sleep 1; done; echo
|
|
240
|
+
else
|
|
241
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists, create first'.red %>"
|
|
242
|
+
fi
|
|
243
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
244
|
+
if docker ps | grep "${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
245
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} already started'.blue %>"
|
|
246
|
+
elif docker ps -a | grep "${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
247
|
+
echo "<%= ' ==> Starting service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
248
|
+
docker start ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
249
|
+
echo -ne "<%= ' ==> Waiting for database server to start properly ...'.blue %>"
|
|
250
|
+
for i in {1..20}; do echo -ne '.'; sleep 1; done; echo
|
|
251
|
+
else
|
|
252
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists, create first'.red %>"
|
|
253
|
+
fi
|
|
254
|
+
<% end %>
|
|
255
|
+
<% end %>
|
|
256
|
+
if docker ps | grep "${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
257
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} already started'.blue %>"
|
|
258
|
+
elif docker ps -a | grep "${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
259
|
+
echo "<%= ' ==> Starting service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
260
|
+
docker start ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null > /dev/null
|
|
261
|
+
else
|
|
262
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} does not exists, create first'.red %>"
|
|
263
|
+
fi
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
stop(){
|
|
267
|
+
<% if DRConfig.linked_database? %>
|
|
268
|
+
<% if databases[application_env] == 'mysql' %>
|
|
269
|
+
if docker ps | grep "${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
270
|
+
echo "<%= ' ==> Stopping service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
271
|
+
docker stop ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
272
|
+
else
|
|
273
|
+
echo "<%= ' ==> Service ${MYSQL_APP_NAME}${SERVICE_NAME_POSTFIX} is not running'.blue %>"
|
|
274
|
+
fi
|
|
275
|
+
<% elsif databases[application_env] == 'postgresql' %>
|
|
276
|
+
if docker ps | grep "${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
277
|
+
echo "<%= ' ==> Stopping service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
278
|
+
docker stop ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
279
|
+
else
|
|
280
|
+
echo "<%= ' ==> Service ${POSTGRESQL_APP_NAME}${SERVICE_NAME_POSTFIX} is not running'.blue %>"
|
|
281
|
+
fi
|
|
282
|
+
<% end %>
|
|
283
|
+
<% end %>
|
|
284
|
+
if docker ps | grep "${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}" > /dev/null; then
|
|
285
|
+
echo "<%= ' ==> Stopping service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX}'.blue %>"
|
|
286
|
+
docker stop ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} > /dev/null
|
|
287
|
+
else
|
|
288
|
+
echo "<%= ' ==> Service ${RAILS_APP_NAME}${SERVICE_NAME_POSTFIX} is not running'.blue %>"
|
|
289
|
+
fi
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
restart() {
|
|
293
|
+
stop > /dev/null
|
|
294
|
+
start
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
case $1 in
|
|
299
|
+
build) build ;;
|
|
300
|
+
rebuild) rebuild;;
|
|
301
|
+
start) start;;
|
|
302
|
+
create) create ;;
|
|
303
|
+
recreate) recreate ;;
|
|
304
|
+
restart) restart ;;
|
|
305
|
+
status) status ;;
|
|
306
|
+
ps) ps ;;
|
|
307
|
+
stop) stop ;;
|
|
308
|
+
remove) remove ;;
|
|
309
|
+
destroy) destroy ;;
|
|
310
|
+
*)
|
|
311
|
+
echo "Usage:" >&2
|
|
312
|
+
echo " ./<%= Constants::SHELL_SCRIPT_FILE_NAME %> {build|rebuild|create|recreate|start|restart|status|stop|remove|destroy}" >&2
|
|
313
|
+
exit 3
|
|
314
|
+
;;
|
|
315
|
+
esac
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<% databases.keys.each do |db| %>
|
|
2
|
+
CREATE DATABASE IF NOT EXISTS <%= ConfigLoader.app_config[db]['database'] %>;
|
|
3
|
+
<% end %>
|
|
4
|
+
|
|
5
|
+
<% databases.keys.each do |db| %>
|
|
6
|
+
GRANT ALL PRIVILEGES ON <%= ConfigLoader.app_config[db]['database'] %>.* TO '<%= database_user_name %>'@'%' WITH GRANT OPTION;
|
|
7
|
+
<% end %>
|
|
8
|
+
SHOW DATABASES ;
|
|
9
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
FROM postgres:<%= postgres_version %>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
FROM ruby:<%= ruby_version %>
|
|
2
|
+
|
|
3
|
+
<% if ruby_version.include? 'alpine' %>
|
|
4
|
+
RUN apk add --update mysql-client mysql-dev postgresql-client g++ ruby-dev make
|
|
5
|
+
<% else %>
|
|
6
|
+
RUN apt-get update &&\
|
|
7
|
+
apt-get -y install mysql-client postgresql-client sqlite3 nodejs --no-install-recommends &&\
|
|
8
|
+
rm -rf /var/lib/apt/lists/*
|
|
9
|
+
<% end %>
|
|
10
|
+
|
|
11
|
+
RUN gem install bundler
|
|
12
|
+
|
|
13
|
+
RUN mkdir -p /usr/src/app
|
|
14
|
+
WORKDIR /usr/src/app
|
|
15
|
+
|
|
16
|
+
COPY ./Gemfile /usr/src/app/
|
|
17
|
+
COPY ./Gemfile.lock /usr/src/app/
|
|
18
|
+
RUN bundle install
|
|
19
|
+
|
|
20
|
+
COPY . /usr/src/app
|
|
21
|
+
COPY ./<%= PATHS.relative_from_current(PATHS.rails_directory) %>/entry-point.sh /usr/src/app/entry-point.sh
|
|
22
|
+
COPY ./<%= PATHS.relative_from_current(PATHS.rails_directory) %>/database.yml /usr/src/app/config/database.yml
|
|
23
|
+
COPY ./<%= PATHS.relative_from_current(PATHS.rails_directory) %>/secrets.yml /usr/src/app/config/secrets.yml
|
|
24
|
+
|
|
25
|
+
EXPOSE <%= application_port %>
|
|
26
|
+
CMD ["bash", "/usr/src/app/entry-point.sh"]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<% if ruby_version.include? 'alpine' %>#!/usr/bin/env sh<% else %>#!/usr/bin/env bash<% end %>
|
|
2
|
+
|
|
3
|
+
<% if DRConfig.linked_database? %>
|
|
4
|
+
<% if databases.values.include?('mysql') || databases.values.include?('postgres') %>
|
|
5
|
+
echo "Waiting for database server to start properly ..." && sleep 20
|
|
6
|
+
<% end %>
|
|
7
|
+
<% end %>
|
|
8
|
+
|
|
9
|
+
<% if application_env == 'production' || application_env == 'staging' %>
|
|
10
|
+
RAILS_ENV=<%= application_env %> bundle exec rake assets:precompile
|
|
11
|
+
<% elsif application_env == 'development' %>
|
|
12
|
+
<% elsif application_env == 'test' %>
|
|
13
|
+
echo "Rails application can not be running in 'test' environment"
|
|
14
|
+
exit 1
|
|
15
|
+
<% else %>
|
|
16
|
+
echo "Unknown environment '<%= application_env %>'"
|
|
17
|
+
exit 1
|
|
18
|
+
<% end %>
|
|
19
|
+
|
|
20
|
+
RAILS_ENV=<%= application_env %> bundle exec rake db:create
|
|
21
|
+
|
|
22
|
+
RAILS_ENV=<%= application_env %> bundle exec rake db:migrate
|
|
23
|
+
|
|
24
|
+
RAILS_ENV=<%= application_env %> bundle exec rake db:seed
|
|
25
|
+
|
|
26
|
+
RAILS_ENV=<%= application_env %> bundle exec rails server -b 0.0.0.0 -p <%= application_port %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
development:
|
|
2
|
+
secret_key_base: f7f2447655a5696c81d61aa015ed40af324542fef3e35abeb0e46ca683377df436a601381b6036098d5c2529e997813c548a58fe0b08e4efae77a064ecbf13d9
|
|
3
|
+
test:
|
|
4
|
+
secret_key_base: 740ac2611c93e41da3df292f9ffa3b00ec51cbdd943080b2770ea4f4a504348b4abb4ef1ecdce39b2391c44e37980628aa886501a2795f15cf01a47234261daf
|
|
5
|
+
staging:
|
|
6
|
+
secret_key_base: 06e4833436871c7dd1f00dd3bf69da418b99e492bf656912ee51b3a011a19e6ec84c6a0e92098f8ff025a7a8dc345d1eb1d05d4b28fdc22d666f405b143cfe57
|
|
7
|
+
production:
|
|
8
|
+
secret_key_base: 73ee7260ccddd5b92938061a111faf67a730e3a4b1ab0d8d82b640ff68a6927ccf9b4d54c9351c809bcceff35e5b32575395dea84f5d58ef70ea3f985d776797
|
data/sideci.yml
ADDED
metadata
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: dockerize_rails
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.3.beta.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- indrajit
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2017-05-30 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: docker-api
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: colorize
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: bundler
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '1.14'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.14'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '10.0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '10.0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rspec
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '3.0'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '3.0'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: yard
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
description: A docker util for rails application
|
|
98
|
+
email:
|
|
99
|
+
- eendroroy@gmail.com
|
|
100
|
+
executables:
|
|
101
|
+
- dock
|
|
102
|
+
extensions: []
|
|
103
|
+
extra_rdoc_files: []
|
|
104
|
+
files:
|
|
105
|
+
- ".codeclimate.yml"
|
|
106
|
+
- ".gitignore"
|
|
107
|
+
- ".reek"
|
|
108
|
+
- ".rspec"
|
|
109
|
+
- ".rubocop.yml"
|
|
110
|
+
- ".travis.yml"
|
|
111
|
+
- CODE_OF_CONDUCT.md
|
|
112
|
+
- CONTRIBUTORS.md
|
|
113
|
+
- Gemfile
|
|
114
|
+
- LICENSE.txt
|
|
115
|
+
- README.md
|
|
116
|
+
- Rakefile
|
|
117
|
+
- bin/console
|
|
118
|
+
- bin/setup
|
|
119
|
+
- config/database.yml
|
|
120
|
+
- dockerize_rails.gemspec
|
|
121
|
+
- exe/dock
|
|
122
|
+
- lib/dockerize_rails.rb
|
|
123
|
+
- lib/dockerize_rails/command_line.rb
|
|
124
|
+
- lib/dockerize_rails/command_line_methods.rb
|
|
125
|
+
- lib/dockerize_rails/config_generator.rb
|
|
126
|
+
- lib/dockerize_rails/config_loader.rb
|
|
127
|
+
- lib/dockerize_rails/constants.rb
|
|
128
|
+
- lib/dockerize_rails/docker_helper.rb
|
|
129
|
+
- lib/dockerize_rails/dr_config.rb
|
|
130
|
+
- lib/dockerize_rails/dr_name_space.rb
|
|
131
|
+
- lib/dockerize_rails/helpers.rb
|
|
132
|
+
- lib/dockerize_rails/paths.rb
|
|
133
|
+
- lib/dockerize_rails/templates.rb
|
|
134
|
+
- lib/dockerize_rails/version.rb
|
|
135
|
+
- resources/.dockerignore.erb
|
|
136
|
+
- resources/docker-compose.yml.erb
|
|
137
|
+
- resources/dockerw.erb
|
|
138
|
+
- resources/mysql/Dockerfile.erb
|
|
139
|
+
- resources/mysql/sql/initdb-mysql.sql.erb
|
|
140
|
+
- resources/postgresql/Dockerfile.erb
|
|
141
|
+
- resources/rails/Dockerfile.erb
|
|
142
|
+
- resources/rails/entry-point.sh.erb
|
|
143
|
+
- resources/rails/secrets.yml.erb
|
|
144
|
+
- sideci.yml
|
|
145
|
+
homepage: https://github.com/eendroroy/dockerize_rails
|
|
146
|
+
licenses:
|
|
147
|
+
- MIT
|
|
148
|
+
metadata:
|
|
149
|
+
allowed_push_host: https://rubygems.org
|
|
150
|
+
post_install_message:
|
|
151
|
+
rdoc_options: []
|
|
152
|
+
require_paths:
|
|
153
|
+
- lib
|
|
154
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
155
|
+
requirements:
|
|
156
|
+
- - ">="
|
|
157
|
+
- !ruby/object:Gem::Version
|
|
158
|
+
version: 2.0.0
|
|
159
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
|
+
requirements:
|
|
161
|
+
- - ">"
|
|
162
|
+
- !ruby/object:Gem::Version
|
|
163
|
+
version: 1.3.1
|
|
164
|
+
requirements: []
|
|
165
|
+
rubyforge_project:
|
|
166
|
+
rubygems_version: 2.2.0
|
|
167
|
+
signing_key:
|
|
168
|
+
specification_version: 4
|
|
169
|
+
summary: A docker util for rails application
|
|
170
|
+
test_files: []
|