ruby_yacht 0.1.1 → 0.2.0

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.
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