ruby_yacht 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile.lock +1 -1
  3. data/doc/TODO.md +16 -6
  4. data/doc/configuration_sample.rb +8 -9
  5. data/lib/ruby_yacht/dsl/app.rb +29 -1
  6. data/lib/ruby_yacht/dsl/app_type.rb +112 -0
  7. data/lib/ruby_yacht/dsl/configuration.rb +163 -2
  8. data/lib/ruby_yacht/dsl/dsl.rb +51 -9
  9. data/lib/ruby_yacht/dsl/hook.rb +105 -0
  10. data/lib/ruby_yacht/dsl/project.rb +17 -21
  11. data/lib/ruby_yacht/dsl.rb +2 -0
  12. data/lib/ruby_yacht/images/app/Dockerfile.erb +20 -13
  13. data/lib/ruby_yacht/images/app/before_startup.bash.erb +8 -0
  14. data/lib/ruby_yacht/images/app/checkout.bash +6 -0
  15. data/lib/ruby_yacht/images/app/startup.bash.erb +5 -0
  16. data/lib/ruby_yacht/images/app-dependencies/Dockerfile.erb +23 -5
  17. data/lib/ruby_yacht/images/database/Dockerfile.erb +25 -11
  18. data/lib/ruby_yacht/images/database/checkout.bash +10 -0
  19. data/lib/ruby_yacht/images/database/setup.bash +15 -0
  20. data/lib/ruby_yacht/images/web/Dockerfile.erb +4 -3
  21. data/lib/ruby_yacht/plugins/rails/scripts/install_gems.rb +3 -0
  22. data/lib/ruby_yacht/plugins/rails/scripts/load_seeds.rb +34 -0
  23. data/lib/ruby_yacht/{images/app/startup.rb → plugins/rails/scripts/prepare_rails_for_launch.rb} +2 -8
  24. data/lib/ruby_yacht/{images/app/update_database_config.rb → plugins/rails/scripts/update_rails_config.rb} +0 -1
  25. data/lib/ruby_yacht/plugins/rails.rb +40 -0
  26. data/lib/ruby_yacht/plugins.rb +6 -0
  27. data/lib/ruby_yacht/runner/build_images.rb +72 -5
  28. data/lib/ruby_yacht/runner/checkout.rb +1 -1
  29. data/lib/ruby_yacht.rb +2 -1
  30. data/ruby_yacht.gemspec +2 -1
  31. data/spec/docker/Dockerfile +1 -1
  32. data/spec/dsl/app_spec.rb +34 -0
  33. data/spec/dsl/app_type_spec.rb +176 -0
  34. data/spec/dsl/configuration_spec.rb +161 -2
  35. data/spec/dsl/dsl_spec.rb +3 -3
  36. data/spec/dsl/hook_spec.rb +111 -0
  37. data/spec/dsl/project_spec.rb +19 -83
  38. data/spec/fixtures/app-dependencies-dockerfile-generic +21 -0
  39. data/spec/fixtures/app-dependencies-dockerfile-generic-with-library-install +28 -0
  40. data/spec/fixtures/app-dependencies-dockerfile-rails +32 -0
  41. data/spec/fixtures/database-dockerfile +16 -15
  42. data/spec/fixtures/database-dockerfile-rails +35 -0
  43. data/spec/fixtures/database-dockerfile-with-seed-hooks +34 -0
  44. data/spec/fixtures/hooks/hook1.rb +0 -0
  45. data/spec/fixtures/hooks/hook2.rb +0 -0
  46. data/spec/fixtures/mars-before-startup +4 -0
  47. data/spec/fixtures/mars-before-startup-rails +7 -0
  48. data/spec/fixtures/mars-before-startup-with-before-startup-hooks +7 -0
  49. data/spec/fixtures/mars-dockerfile +9 -14
  50. data/spec/fixtures/mars-dockerfile-rails +33 -0
  51. data/spec/fixtures/mars-dockerfile-with-after-checkout-hooks +30 -0
  52. data/spec/fixtures/mars-dockerfile-with-before-startup-hooks +29 -0
  53. data/spec/fixtures/mars-startup +3 -0
  54. data/spec/fixtures/mars-startup-rails +3 -0
  55. data/spec/fixtures/multi-project-web-dockerfile +0 -10
  56. data/spec/fixtures/web-dockerfile +0 -6
  57. data/spec/plugins/rails_spec.rb +198 -0
  58. data/spec/runner/build_images_spec.rb +181 -15
  59. data/spec/runner/checkout_spec.rb +2 -2
  60. data/spec/support/test_project.rb +16 -8
  61. metadata +62 -30
  62. data/lib/ruby_yacht/images/app/checkout.rb +0 -7
  63. data/lib/ruby_yacht/images/app-dependencies/install_gems.rb +0 -12
  64. data/lib/ruby_yacht/images/database/load_seeds.rb +0 -42
  65. data/lib/ruby_yacht/images/database/setup.rb +0 -19
  66. data/lib/ruby_yacht/images/database/setup_database.sql.erb +0 -12
  67. data/spec/fixtures/app-dependencies-dockerfile +0 -25
@@ -4,19 +4,24 @@ describe RubyYacht::Project do
4
4
  describe "dsl" do
5
5
  let(:project) { RubyYacht::Project::DSL.new(:test_project).run(@builder).create_object }
6
6
 
7
+ before do
8
+ RubyYacht.configuration.clear
9
+ RubyYacht.configure do
10
+ app_type(:generic) { baseline_image 'ubuntu' }
11
+ end
12
+ end
13
+
7
14
  it "can create a project with all the fields" do
8
15
  @builder = Proc.new do
9
16
  system_prefix :a
10
17
  domain "a.test.com"
11
- secret_key_base "a"
12
18
  repository "github.com"
13
- rails_environment "production"
14
19
 
15
- app(:app1) do
20
+ app :app1, :generic do
16
21
  repository_name 'brownleej/test1'
17
22
  end
18
23
 
19
- app(:app2) do
24
+ app :app2, :generic do
20
25
  repository_name 'brownleej/test2'
21
26
  end
22
27
 
@@ -35,9 +40,7 @@ describe RubyYacht::Project do
35
40
  expect(project.name).to eq :test_project
36
41
  expect(project.system_prefix).to eq :a
37
42
  expect(project.domain).to eq "a.test.com"
38
- expect(project.secret_key_base).to eq "a"
39
43
  expect(project.repository).to eq "github.com"
40
- expect(project.rails_environment).to eq "production"
41
44
 
42
45
  expect(project.apps.map(&:name)).to eq [:app1, :app2]
43
46
  expect(project.database.name).to eq 'project1'
@@ -47,14 +50,13 @@ describe RubyYacht::Project do
47
50
  it "requires the system prefix" do
48
51
  @builder = Proc.new do
49
52
  domain "a.test.com"
50
- secret_key_base "a"
51
53
  repository "github.com"
52
54
 
53
- app(:app1) do
55
+ app :app1, :generic do
54
56
  repository_name 'brownleej/test1'
55
57
  end
56
58
 
57
- app(:app2) do
59
+ app :app2, :generic do
58
60
  repository_name 'brownleej/test2'
59
61
  end
60
62
 
@@ -76,14 +78,13 @@ describe RubyYacht::Project do
76
78
  it "requires the domain" do
77
79
  @builder = Proc.new do
78
80
  system_prefix :a
79
- secret_key_base "a"
80
81
  repository "github.com"
81
82
 
82
- app(:app1) do
83
+ app :app1, :generic do
83
84
  repository_name 'brownleej/test1'
84
85
  end
85
86
 
86
- app(:app2) do
87
+ app :app2, :generic do
87
88
  repository_name 'brownleej/test2'
88
89
  end
89
90
 
@@ -102,46 +103,16 @@ describe RubyYacht::Project do
102
103
  expect { project }.to raise_exception "Missing required attribute domain for RubyYacht::Project::DSL"
103
104
  end
104
105
 
105
- it "requires the secret_key_base" do
106
- @builder = Proc.new do
107
- system_prefix :a
108
- domain "a.test.com"
109
- repository "github.com"
110
-
111
- app(:app1) do
112
- repository_name 'brownleej/test1'
113
- end
114
-
115
- app(:app2) do
116
- repository_name 'brownleej/test2'
117
- end
118
-
119
- database do
120
- host "localhost"
121
- name "project1"
122
- username "test"
123
- password "test"
124
- end
125
-
126
- dns_server do
127
- server '8.10.1.1'
128
- end
129
- end
130
-
131
- expect { project }.to raise_exception "Missing required attribute secret_key_base for RubyYacht::Project::DSL"
132
- end
133
-
134
106
  it "requires the repository" do
135
107
  @builder = Proc.new do
136
108
  system_prefix :a
137
109
  domain "a.test.com"
138
- secret_key_base "a"
139
110
 
140
- app(:app1) do
111
+ app :app1, :generic do
141
112
  repository_name 'brownleej/test1'
142
113
  end
143
114
 
144
- app(:app2) do
115
+ app :app2, :generic do
145
116
  repository_name 'brownleej/test2'
146
117
  end
147
118
 
@@ -159,43 +130,12 @@ describe RubyYacht::Project do
159
130
 
160
131
  expect { project }.to raise_exception "Missing required attribute repository for RubyYacht::Project::DSL"
161
132
  end
162
- it "defaults the rails_environment to development" do
163
- @builder = Proc.new do
164
- system_prefix :a
165
- domain "a.test.com"
166
- secret_key_base "a"
167
- repository "github.com"
168
-
169
- app(:app1) do
170
- repository_name 'brownleej/test1'
171
- end
172
-
173
- app(:app2) do
174
- repository_name 'brownleej/test2'
175
- end
176
-
177
- database do
178
- host "localhost"
179
- name "project1"
180
- username "test"
181
- password "test"
182
- end
183
-
184
- dns_server do
185
- server '8.10.1.1'
186
- end
187
- end
188
-
189
- expect(project.rails_environment).to eq 'development'
190
- end
191
133
 
192
134
  it "does not require any apps" do
193
135
  @builder = Proc.new do
194
136
  system_prefix :a
195
137
  domain "a.test.com"
196
- secret_key_base "a"
197
138
  repository "github.com"
198
- rails_environment "production"
199
139
 
200
140
  database do
201
141
  host "localhost"
@@ -216,15 +156,13 @@ describe RubyYacht::Project do
216
156
  @builder = Proc.new do
217
157
  system_prefix :a
218
158
  domain "a.test.com"
219
- secret_key_base "a"
220
159
  repository "github.com"
221
- rails_environment "production"
222
160
 
223
- app(:app1) do
161
+ app :app1, :generic do
224
162
  repository_name 'brownleej/test1'
225
163
  end
226
164
 
227
- app(:app2) do
165
+ app :app2, :generic do
228
166
  repository_name 'brownleej/test2'
229
167
  end
230
168
 
@@ -240,15 +178,13 @@ describe RubyYacht::Project do
240
178
  @builder = Proc.new do
241
179
  system_prefix :a
242
180
  domain "a.test.com"
243
- secret_key_base "a"
244
181
  repository "github.com"
245
- rails_environment "production"
246
182
 
247
- app(:app1) do
183
+ app :app1, :generic do
248
184
  repository_name 'brownleej/test1'
249
185
  end
250
186
 
251
- app(:app2) do
187
+ app :app2, :generic do
252
188
  repository_name 'brownleej/test2'
253
189
  end
254
190
 
@@ -0,0 +1,21 @@
1
+ # This Dockerfile creates an image for installing all of the dependencies
2
+ # for all of the apps.
3
+ #
4
+ # This is a slow process, so this should be kept as simple as possible so that
5
+ # it can remain unchanged.
6
+
7
+ FROM ubuntu
8
+
9
+ RUN mkdir -p /root/.ssh
10
+ COPY id_rsa /root/.ssh
11
+ RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
12
+
13
+ RUN mkdir -p /var/docker/
14
+
15
+ RUN git clone git@github.com:brownleej/mars /var/code/mars
16
+ WORKDIR /var/code/mars
17
+
18
+ WORKDIR /
19
+
20
+ RUN apt-get update && apt-get upgrade -y
21
+ RUN apt-get install -y mysql-client
@@ -0,0 +1,28 @@
1
+ # This Dockerfile creates an image for installing all of the dependencies
2
+ # for all of the apps.
3
+ #
4
+ # This is a slow process, so this should be kept as simple as possible so that
5
+ # it can remain unchanged.
6
+
7
+ FROM ubuntu
8
+
9
+ RUN mkdir -p /root/.ssh
10
+ COPY id_rsa /root/.ssh
11
+ RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
12
+
13
+ RUN mkdir -p /var/docker/
14
+
15
+ COPY hook2.rb /var/docker/hook2.rb
16
+
17
+ RUN chmod u+x /var/docker/*
18
+
19
+ RUN git clone git@github.com:brownleej/mars /var/code/mars
20
+ WORKDIR /var/code/mars
21
+ RUN /var/docker/hook2.rb
22
+
23
+ RUN rm /var/docker/*
24
+
25
+ WORKDIR /
26
+
27
+ RUN apt-get update && apt-get upgrade -y
28
+ RUN apt-get install -y mysql-client
@@ -0,0 +1,32 @@
1
+ # This Dockerfile creates an image for installing all of the dependencies
2
+ # for all of the apps.
3
+ #
4
+ # This is a slow process, so this should be kept as simple as possible so that
5
+ # it can remain unchanged.
6
+
7
+ FROM ruby:2.3
8
+
9
+ RUN mkdir -p /root/.ssh
10
+ COPY id_rsa /root/.ssh
11
+ RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
12
+
13
+ RUN mkdir -p /var/docker/
14
+
15
+ COPY install_gems.rb /var/docker/install_gems.rb
16
+
17
+ RUN chmod u+x /var/docker/*
18
+
19
+ RUN git clone git@github.com:brownleej/mars /var/code/mars
20
+ WORKDIR /var/code/mars
21
+ RUN /var/docker/install_gems.rb
22
+
23
+ RUN git clone git@github.com:brownleej/saturn /var/code/saturn
24
+ WORKDIR /var/code/saturn
25
+ RUN /var/docker/install_gems.rb
26
+
27
+ RUN rm /var/docker/*
28
+
29
+ WORKDIR /
30
+
31
+ RUN apt-get update && apt-get upgrade -y
32
+ RUN apt-get install -y mysql-client
@@ -1,31 +1,32 @@
1
- FROM apollo-app-dependencies
2
-
3
-
1
+ FROM apollo-debian-app-dependencies
4
2
 
5
3
  ENV DEBIAN_FRONTEND noninteractive
6
4
  RUN apt-get install -y mysql-server
7
5
 
8
- COPY setup.rb /var/docker/setup.rb
9
- COPY setup_database.sql.erb /var/docker/setup_database.sql.erb
10
- COPY load_seeds.rb /var/docker/load_seeds.rb
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV DATABASE_PASSWORD test
8
+ ENV DATABASE_NAME apollo
11
9
 
12
- RUN ruby /var/docker/setup.rb apollo apollo test development
10
+ COPY setup.bash /var/docker/setup.bash
11
+ COPY checkout.bash /var/docker/checkout.bash
13
12
 
13
+ RUN chmod u+x /var/docker/*
14
14
 
15
+ RUN /var/docker/setup.bash apollo apollo test
15
16
 
16
-
17
-
18
- RUN ruby /var/docker/load_seeds.rb mars apollo_development apollo test false
19
-
17
+ RUN /var/docker/checkout.bash github.com mars brownleej/mars
18
+ WORKDIR /var/code/mars
20
19
 
21
-
22
-
23
- RUN ruby /var/docker/load_seeds.rb saturn apollo_development apollo test true
24
-
20
+ RUN /var/docker/checkout.bash github.com saturn brownleej/saturn
21
+ WORKDIR /var/code/saturn
25
22
 
26
23
  RUN rm -r /var/docker
27
24
  RUN rm -r /var/code
28
25
 
26
+ ENV DATABASE_USERNAME ''
27
+ ENV DATABASE_PASSWORD ''
28
+ ENV DATABASE_NAME ''
29
+
29
30
  EXPOSE 3306
30
31
 
31
32
  CMD mysqld_safe --bind-address=0.0.0.0
@@ -0,0 +1,35 @@
1
+ FROM apollo-rails-app-dependencies
2
+
3
+ ENV DEBIAN_FRONTEND noninteractive
4
+ RUN apt-get install -y mysql-server
5
+
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV DATABASE_PASSWORD test
8
+ ENV DATABASE_NAME apollo
9
+
10
+ COPY setup.bash /var/docker/setup.bash
11
+ COPY checkout.bash /var/docker/checkout.bash
12
+ COPY load_seeds.rb /var/docker/load_seeds.rb
13
+
14
+ RUN chmod u+x /var/docker/*
15
+
16
+ RUN /var/docker/setup.bash apollo apollo test
17
+
18
+ RUN /var/docker/checkout.bash github.com mars brownleej/mars
19
+ WORKDIR /var/code/mars
20
+ RUN /var/docker/load_seeds.rb
21
+
22
+ RUN /var/docker/checkout.bash github.com saturn brownleej/saturn
23
+ WORKDIR /var/code/saturn
24
+ RUN /var/docker/load_seeds.rb
25
+
26
+ RUN rm -r /var/docker
27
+ RUN rm -r /var/code
28
+
29
+ ENV DATABASE_USERNAME ''
30
+ ENV DATABASE_PASSWORD ''
31
+ ENV DATABASE_NAME ''
32
+
33
+ EXPOSE 3306
34
+
35
+ CMD mysqld_safe --bind-address=0.0.0.0
@@ -0,0 +1,34 @@
1
+ FROM apollo-debian-app-dependencies
2
+
3
+ ENV DEBIAN_FRONTEND noninteractive
4
+ RUN apt-get install -y mysql-server
5
+
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV DATABASE_PASSWORD test
8
+ ENV DATABASE_NAME apollo
9
+
10
+ COPY setup.bash /var/docker/setup.bash
11
+ COPY checkout.bash /var/docker/checkout.bash
12
+ COPY hook1.rb /var/docker/hook1.rb
13
+
14
+ RUN chmod u+x /var/docker/*
15
+
16
+ RUN /var/docker/setup.bash apollo apollo test
17
+
18
+ RUN /var/docker/checkout.bash github.com mars brownleej/mars
19
+ WORKDIR /var/code/mars
20
+ RUN /var/docker/hook1.rb
21
+
22
+ RUN /var/docker/checkout.bash github.com saturn brownleej/saturn
23
+ WORKDIR /var/code/saturn
24
+
25
+ RUN rm -r /var/docker
26
+ RUN rm -r /var/code
27
+
28
+ ENV DATABASE_USERNAME ''
29
+ ENV DATABASE_PASSWORD ''
30
+ ENV DATABASE_NAME ''
31
+
32
+ EXPOSE 3306
33
+
34
+ CMD mysqld_safe --bind-address=0.0.0.0
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ #! /bin/bash
2
+
3
+ cd /var/code;
4
+ /var/docker/checkout.bash;
@@ -0,0 +1,7 @@
1
+ #! /bin/bash
2
+
3
+ cd /var/code;
4
+ /var/docker/checkout.bash;
5
+
6
+ /var/docker/update_rails_config.rb;
7
+ /var/docker/prepare_rails_for_launch.rb;
@@ -0,0 +1,7 @@
1
+ #! /bin/bash
2
+
3
+ cd /var/code;
4
+ /var/docker/checkout.bash;
5
+
6
+ /var/docker/hook1.rb;
7
+ /var/docker/hook2.rb;
@@ -1,32 +1,27 @@
1
- FROM apollo-app-dependencies
1
+ FROM apollo-generic-app-dependencies
2
2
 
3
3
  ENV DATABASE_HOST db.test.com
4
4
  ENV DATABASE_NAME apollo
5
5
  ENV DATABASE_PASSWORD test
6
6
  ENV DATABASE_USERNAME apollo
7
- ENV RAILS_ENV development
8
- ENV RAILS_PORT 8080
7
+ ENV APP_PORT 8080
9
8
  ENV REPOSITORY_HOST github.com
10
- ENV SECRET_KEY_BASE abc
11
9
  ENV SYSTEM_PREFIX apollo
12
10
 
13
11
  RUN rm -r /var/code
14
12
  RUN mkdir -p /var/code
15
13
 
16
- COPY startup.rb /var/docker/startup.rb
17
- COPY checkout.rb /var/docker/checkout.rb
18
- COPY update_database_config.rb /var/docker/update_database_config.rb
19
-
20
- RUN chmod u+x /var/docker/*.rb
21
-
22
14
  ENV REPOSITORY_NAME brownleej/mars
15
+ COPY checkout.bash /var/docker/checkout.bash
16
+ RUN bash /var/docker/checkout.bash
23
17
 
24
- RUN /var/docker/checkout.rb
18
+ COPY before_startup.bash /var/docker/before_startup.bash
19
+ COPY startup.bash /var/docker/startup.bash
25
20
 
26
- WORKDIR /var/code
21
+ RUN chmod u+x /var/docker/*
27
22
 
28
- RUN bundle install && bundle clean --force
23
+ WORKDIR /var/code
29
24
 
30
25
  EXPOSE 8080
31
26
 
32
- CMD /var/docker/startup.rb
27
+ CMD /var/docker/startup.bash
@@ -0,0 +1,33 @@
1
+ FROM apollo-rails-app-dependencies
2
+
3
+ ENV DATABASE_HOST db.test.com
4
+ ENV DATABASE_NAME apollo
5
+ ENV DATABASE_PASSWORD test
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV APP_PORT 8080
8
+ ENV REPOSITORY_HOST github.com
9
+ ENV SYSTEM_PREFIX apollo
10
+ ENV RAILS_ENV development
11
+ ENV SECRET_KEY_BASE abc
12
+
13
+ RUN rm -r /var/code
14
+ RUN mkdir -p /var/code
15
+
16
+ ENV REPOSITORY_NAME brownleej/mars
17
+ COPY checkout.bash /var/docker/checkout.bash
18
+ RUN bash /var/docker/checkout.bash
19
+
20
+ COPY before_startup.bash /var/docker/before_startup.bash
21
+ COPY startup.bash /var/docker/startup.bash
22
+ COPY update_rails_config.rb /var/docker/update_rails_config.rb
23
+ COPY prepare_rails_for_launch.rb /var/docker/prepare_rails_for_launch.rb
24
+
25
+ RUN chmod u+x /var/docker/*
26
+
27
+ WORKDIR /var/code
28
+
29
+ RUN bundle install && bundle clean --force
30
+
31
+ EXPOSE 8080
32
+
33
+ CMD /var/docker/startup.bash
@@ -0,0 +1,30 @@
1
+ FROM apollo-generic-app-dependencies
2
+
3
+ ENV DATABASE_HOST db.test.com
4
+ ENV DATABASE_NAME apollo
5
+ ENV DATABASE_PASSWORD test
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV APP_PORT 8080
8
+ ENV REPOSITORY_HOST github.com
9
+ ENV SYSTEM_PREFIX apollo
10
+
11
+ RUN rm -r /var/code
12
+ RUN mkdir -p /var/code
13
+
14
+ ENV REPOSITORY_NAME brownleej/mars
15
+ COPY checkout.bash /var/docker/checkout.bash
16
+ RUN bash /var/docker/checkout.bash
17
+
18
+ COPY before_startup.bash /var/docker/before_startup.bash
19
+ COPY startup.bash /var/docker/startup.bash
20
+ COPY hook1.rb /var/docker/hook1.rb
21
+
22
+ RUN chmod u+x /var/docker/*
23
+
24
+ WORKDIR /var/code
25
+
26
+ RUN /var/docker/hook1.rb
27
+
28
+ EXPOSE 8080
29
+
30
+ CMD /var/docker/startup.bash
@@ -0,0 +1,29 @@
1
+ FROM apollo-generic-app-dependencies
2
+
3
+ ENV DATABASE_HOST db.test.com
4
+ ENV DATABASE_NAME apollo
5
+ ENV DATABASE_PASSWORD test
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV APP_PORT 8080
8
+ ENV REPOSITORY_HOST github.com
9
+ ENV SYSTEM_PREFIX apollo
10
+
11
+ RUN rm -r /var/code
12
+ RUN mkdir -p /var/code
13
+
14
+ ENV REPOSITORY_NAME brownleej/mars
15
+ COPY checkout.bash /var/docker/checkout.bash
16
+ RUN bash /var/docker/checkout.bash
17
+
18
+ COPY before_startup.bash /var/docker/before_startup.bash
19
+ COPY startup.bash /var/docker/startup.bash
20
+ COPY hook1.rb /var/docker/hook1.rb
21
+ COPY hook2.rb /var/docker/hook2.rb
22
+
23
+ RUN chmod u+x /var/docker/*
24
+
25
+ WORKDIR /var/code
26
+
27
+ EXPOSE 8080
28
+
29
+ CMD /var/docker/startup.bash
@@ -0,0 +1,3 @@
1
+ #! /bin/bash
2
+ /var/docker/before_startup.bash;
3
+ /var/docker/start_app.bash;
@@ -0,0 +1,3 @@
1
+ #! /bin/bash
2
+ /var/docker/before_startup.bash;
3
+ rails s -b 0.0.0.0 -p $APP_PORT -e $RAILS_ENV;
@@ -12,23 +12,13 @@ COPY index.html.erb /var/docker/index.html.erb
12
12
  COPY index_config.erb /var/docker/index_config.erb
13
13
  COPY app_config.erb /var/docker/app_config.erb
14
14
 
15
-
16
-
17
15
  RUN ruby /var/docker/add_project.rb apollo apollo.test.com mars,saturn
18
-
19
16
  RUN ruby /var/docker/add_app.rb apollo apollo.test.com mars 8080
20
-
21
17
  RUN ruby /var/docker/add_app.rb apollo apollo.test.com saturn 8080
22
-
23
18
 
24
-
25
19
  RUN ruby /var/docker/add_project.rb jupiter jupiter.test.com venus,saturn
26
-
27
20
  RUN ruby /var/docker/add_app.rb jupiter jupiter.test.com venus 8080
28
-
29
21
  RUN ruby /var/docker/add_app.rb jupiter jupiter.test.com saturn 8080
30
-
31
-
32
22
 
33
23
  RUN rm -r /var/docker
34
24
  RUN apt-get remove -y ruby
@@ -12,15 +12,9 @@ COPY index.html.erb /var/docker/index.html.erb
12
12
  COPY index_config.erb /var/docker/index_config.erb
13
13
  COPY app_config.erb /var/docker/app_config.erb
14
14
 
15
-
16
-
17
15
  RUN ruby /var/docker/add_project.rb apollo apollo.test.com mars,saturn
18
-
19
16
  RUN ruby /var/docker/add_app.rb apollo apollo.test.com mars 8080
20
-
21
17
  RUN ruby /var/docker/add_app.rb apollo apollo.test.com saturn 8080
22
-
23
-
24
18
 
25
19
  RUN rm -r /var/docker
26
20
  RUN apt-get remove -y ruby