ruby_yacht 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/doc/TODO.md +1 -8
  4. data/lib/ruby_yacht/dsl/app.rb +37 -10
  5. data/lib/ruby_yacht/dsl/configuration.rb +21 -21
  6. data/lib/ruby_yacht/dsl/database.rb +53 -0
  7. data/lib/ruby_yacht/dsl/dsl.rb +14 -8
  8. data/lib/ruby_yacht/dsl/hook.rb +35 -15
  9. data/lib/ruby_yacht/dsl/project.rb +23 -10
  10. data/lib/ruby_yacht/dsl/{app_type.rb → server_type.rb} +39 -29
  11. data/lib/ruby_yacht/dsl.rb +1 -1
  12. data/lib/ruby_yacht/images/app/Dockerfile.erb +9 -5
  13. data/lib/ruby_yacht/images/app-dependencies/Dockerfile.erb +2 -2
  14. data/lib/ruby_yacht/images/database/Dockerfile.erb +12 -11
  15. data/lib/ruby_yacht/images/web/Dockerfile.erb +6 -2
  16. data/lib/ruby_yacht/images/web/add_app.rb +7 -1
  17. data/lib/ruby_yacht/images/web/app_config.erb +2 -0
  18. data/lib/ruby_yacht/plugins/mysql/scripts/setup.bash +11 -0
  19. data/lib/ruby_yacht/plugins/mysql.rb +27 -0
  20. data/lib/ruby_yacht/plugins/rails/scripts/install_gems.rb +6 -1
  21. data/lib/ruby_yacht/plugins/rails/scripts/load_seeds.rb +6 -4
  22. data/lib/ruby_yacht/plugins/rails/scripts/prepare_rails_for_launch.rb +1 -0
  23. data/lib/ruby_yacht/plugins/rails/scripts/update_rails_config.rb +1 -5
  24. data/lib/ruby_yacht/plugins/rails.rb +12 -4
  25. data/lib/ruby_yacht/plugins.rb +2 -1
  26. data/lib/ruby_yacht/runner/build_images.rb +32 -26
  27. data/lib/ruby_yacht/runner/checkout.rb +5 -4
  28. data/lib/ruby_yacht/runner/run_containers.rb +7 -6
  29. data/lib/ruby_yacht/runner/services.rb +2 -2
  30. data/lib/ruby_yacht/runner/shell.rb +5 -4
  31. data/lib/ruby_yacht/runner/update_hosts.rb +2 -1
  32. data/ruby_yacht.gemspec +1 -1
  33. data/spec/dsl/app_spec.rb +96 -10
  34. data/spec/dsl/configuration_spec.rb +53 -55
  35. data/spec/dsl/database_spec.rb +70 -12
  36. data/spec/dsl/hook_spec.rb +36 -19
  37. data/spec/dsl/project_spec.rb +26 -18
  38. data/spec/dsl/{app_type_spec.rb → server_type_spec.rb} +52 -28
  39. data/spec/fixtures/app-dependencies-dockerfile-rails +3 -0
  40. data/spec/fixtures/database-dockerfile +1 -8
  41. data/spec/fixtures/database-dockerfile-mysql +30 -0
  42. data/spec/fixtures/database-dockerfile-rails +1 -5
  43. data/spec/fixtures/database-dockerfile-with-seed-hooks +1 -8
  44. data/spec/fixtures/mars-before-startup-with-custom-file-copy +6 -0
  45. data/spec/fixtures/mars-dockerfile +0 -4
  46. data/spec/fixtures/mars-dockerfile-rails +2 -2
  47. data/spec/fixtures/mars-dockerfile-with-after-checkout-hooks +0 -4
  48. data/spec/fixtures/mars-dockerfile-with-before-startup-hooks +0 -4
  49. data/spec/fixtures/mars-dockerfile-with-custom-file-copy +23 -0
  50. data/spec/fixtures/mars-dockerfile-with-local-database +27 -0
  51. data/spec/fixtures/mars-dockerfile-with-remote-database +27 -0
  52. data/spec/fixtures/web-dockerfile-with-eponymous-app +20 -0
  53. data/spec/plugins/mysql_spec.rb +64 -0
  54. data/spec/plugins/rails_spec.rb +103 -43
  55. data/spec/runner/build_images_spec.rb +142 -11
  56. data/spec/runner/checkout_spec.rb +4 -4
  57. data/spec/runner/run_containers_spec.rb +21 -2
  58. data/spec/runner/runner_spec.rb +1 -1
  59. data/spec/runner/services_spec.rb +7 -2
  60. data/spec/runner/shell_spec.rb +3 -3
  61. data/spec/runner/update_hosts_spec.rb +26 -0
  62. data/spec/support/test_project.rb +16 -20
  63. metadata +20 -5
  64. data/lib/ruby_yacht/images/database/setup.bash +0 -15
@@ -1,18 +1,18 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RubyYacht::Hook do
4
- describe "script_name" do
5
- context "with no script path" do
4
+ describe "copied_file_name" do
5
+ context "with no copied_file_path" do
6
6
  it "is an empty string" do
7
- expect(subject.script_name).to eq ""
7
+ expect(subject.copied_file_name).to eq ""
8
8
  end
9
9
  end
10
10
 
11
- context "with a script path" do
12
- before { subject.script_path = "./foo/bar.rb" }
11
+ context "with a a copied_file_path" do
12
+ before { subject.copied_file_path = "./foo/bar.rb" }
13
13
 
14
- it "gets the filename from the script path" do
15
- expect(subject.script_name).to eq "bar.rb"
14
+ it "gets the filename from the path" do
15
+ expect(subject.copied_file_name).to eq "bar.rb"
16
16
  end
17
17
  end
18
18
  end
@@ -25,13 +25,14 @@ describe RubyYacht::Hook do
25
25
  RubyYacht.configuration.clear
26
26
 
27
27
  RubyYacht.configure do
28
- app_type :test do
28
+ server_type :test do
29
+ container_type :app
29
30
  baseline_image 'ubuntu'
30
31
  end
31
32
  end
32
33
 
33
34
  @config_block = Proc.new do
34
- app_type :test
35
+ server_type :test
35
36
  command 'curl google.com'
36
37
  end
37
38
  end
@@ -39,27 +40,27 @@ describe RubyYacht::Hook do
39
40
  it "can create a hook for running a command" do
40
41
  expect(hook.event_time).to eq :before
41
42
  expect(hook.event_type).to eq :startup
42
- expect(hook.app_type).to eq :test
43
+ expect(hook.server_type).to eq :test
43
44
  expect(hook.command).to eq 'curl google.com'
44
45
  end
45
46
 
46
- it "can create a hook for running a command" do
47
+ it "can create a hook for running a script" do
47
48
  @config_block = Proc.new do
48
- app_type :test
49
+ server_type :test
49
50
  script_folder './foo'
50
51
  run_script 'bar.rb'
51
52
  end
52
53
  expect(hook.event_time).to eq :before
53
54
  expect(hook.event_type).to eq :startup
54
- expect(hook.app_type).to eq :test
55
- expect(hook.script_path).to eq './foo/bar.rb'
55
+ expect(hook.server_type).to eq :test
56
+ expect(hook.copied_file_path).to eq './foo/bar.rb'
56
57
  expect(hook.command).to eq '/var/docker/bar.rb'
57
58
  end
58
59
 
59
60
  context "with no command" do
60
61
  before do
61
62
  @config_block = Proc.new do
62
- app_type :test
63
+ server_type :test
63
64
  end
64
65
  end
65
66
 
@@ -71,16 +72,32 @@ describe RubyYacht::Hook do
71
72
  context "with a script name and no script path" do
72
73
  before do
73
74
  @config_block = Proc.new do
74
- app_type :test
75
+ server_type :test
75
76
  run_script 'bar.rb'
76
77
  end
77
78
  end
78
79
 
79
80
  it "creates a hook with with the script relative to the current folder" do
80
- expect(hook.script_path).to eq './bar.rb'
81
+ expect(hook.copied_file_path).to eq './bar.rb'
81
82
  expect(hook.command).to eq '/var/docker/bar.rb'
82
83
  end
83
84
  end
85
+
86
+ context "with a custom command for copying a file" do
87
+ before do
88
+ @config_block = Proc.new do
89
+ server_type :test
90
+ script_folder './foo'
91
+ copy_file 'test.txt'
92
+ command 'scp /var/docker/test.txt test.com:test.txt'
93
+ end
94
+ end
95
+
96
+ it "uses that file as the copied_file_path" do
97
+ expect(hook.copied_file_path).to eq './foo/test.txt'
98
+ expect(hook.command).to eq 'scp /var/docker/test.txt test.com:test.txt'
99
+ end
100
+ end
84
101
 
85
102
  context "with no app type" do
86
103
  before do
@@ -91,14 +108,14 @@ describe RubyYacht::Hook do
91
108
  end
92
109
 
93
110
  it "raises an exception" do
94
- expect { hook }.to raise_exception 'Missing required attribute app_type for RubyYacht::Hook::DSL'
111
+ expect { hook }.to raise_exception 'Missing required attribute server_type for RubyYacht::Hook::DSL'
95
112
  end
96
113
  end
97
114
 
98
115
  context "with an invalid app type" do
99
116
  before do
100
117
  @config_block = Proc.new do
101
- app_type :invalid
118
+ server_type :invalid
102
119
  command 'whoami'
103
120
  end
104
121
  end
@@ -7,7 +7,14 @@ describe RubyYacht::Project do
7
7
  before do
8
8
  RubyYacht.configuration.clear
9
9
  RubyYacht.configure do
10
- app_type(:generic) { baseline_image 'ubuntu' }
10
+ server_type :generic do
11
+ container_type :app
12
+ baseline_image 'ubuntu'
13
+ end
14
+ server_type :sqlite do
15
+ container_type :database
16
+ baseline_image 'ubuntu'
17
+ end
11
18
  end
12
19
  end
13
20
 
@@ -25,11 +32,11 @@ describe RubyYacht::Project do
25
32
  repository_name 'brownleej/test2'
26
33
  end
27
34
 
28
- database do
35
+ database :project1, :sqlite do
29
36
  host "localhost"
30
- name "project1"
31
37
  username "test"
32
38
  password "test"
39
+ container_label :sqlite
33
40
  end
34
41
 
35
42
  dns_server do
@@ -46,7 +53,8 @@ describe RubyYacht::Project do
46
53
  expect(project.primary_app).to eq :app1
47
54
 
48
55
  expect(project.apps.map(&:name)).to eq [:app1, :app2]
49
- expect(project.database.name).to eq 'project1'
56
+ expect(project.databases.map(&:name)).to eq [:project1]
57
+
50
58
  expect(project.dns_server.servers).to eq ['8.10.1.1']
51
59
  end
52
60
 
@@ -63,11 +71,11 @@ describe RubyYacht::Project do
63
71
  repository_name 'brownleej/test2'
64
72
  end
65
73
 
66
- database do
74
+ database :project1, :sqlite do
67
75
  host "localhost"
68
- name "project1"
69
76
  username "test"
70
77
  password "test"
78
+ container_label :sqlite
71
79
  end
72
80
 
73
81
  dns_server do
@@ -93,11 +101,11 @@ describe RubyYacht::Project do
93
101
  repository_name 'brownleej/test2'
94
102
  end
95
103
 
96
- database do
104
+ database :project1, :sqlite do
97
105
  host "localhost"
98
- name "project1"
99
106
  username "test"
100
107
  password "test"
108
+ container_label :sqlite
101
109
  end
102
110
 
103
111
  dns_server do
@@ -123,11 +131,11 @@ describe RubyYacht::Project do
123
131
  repository_name 'brownleej/test2'
124
132
  end
125
133
 
126
- database do
134
+ database :project1, :sqlite do
127
135
  host "localhost"
128
- name "project1"
129
136
  username "test"
130
137
  password "test"
138
+ container_label :sqlite
131
139
  end
132
140
 
133
141
  dns_server do
@@ -146,11 +154,11 @@ describe RubyYacht::Project do
146
154
  domain "a.test.com"
147
155
  repository "github.com"
148
156
 
149
- database do
157
+ database :project1, :sqlite do
150
158
  host "localhost"
151
- name "project1"
152
159
  username "test"
153
160
  password "test"
161
+ container_label :sqlite
154
162
  end
155
163
 
156
164
  dns_server do
@@ -163,7 +171,7 @@ describe RubyYacht::Project do
163
171
  expect(project.apps.count).to eq 0
164
172
  end
165
173
 
166
- it "requires the database config" do
174
+ it "does not require the database config" do
167
175
  @builder = Proc.new do
168
176
  system_prefix :a
169
177
  domain "a.test.com"
@@ -184,7 +192,7 @@ describe RubyYacht::Project do
184
192
  primary_app :app1
185
193
  end
186
194
 
187
- expect { project }.to raise_exception "Missing required attribute database for RubyYacht::Project::DSL"
195
+ expect(project.databases.count).to eq 0
188
196
  end
189
197
 
190
198
  it "does not require the DNS server config" do
@@ -201,11 +209,11 @@ describe RubyYacht::Project do
201
209
  repository_name 'brownleej/test2'
202
210
  end
203
211
 
204
- database do
212
+ database :project1, :sqlite do
205
213
  host "localhost"
206
- name "project1"
207
214
  username "test"
208
215
  password "test"
216
+ container_label :sqlite
209
217
  end
210
218
 
211
219
  primary_app :app1
@@ -228,11 +236,11 @@ describe RubyYacht::Project do
228
236
  repository_name 'brownleej/test2'
229
237
  end
230
238
 
231
- database do
239
+ database :project1, :sqlite do
232
240
  host "localhost"
233
- name "project1"
234
241
  username "test"
235
242
  password "test"
243
+ container_label :sqlite
236
244
  end
237
245
 
238
246
  dns_server do
@@ -1,16 +1,17 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe RubyYacht::AppType do
3
+ describe RubyYacht::ServerType do
4
4
  let(:full_config_block) do
5
5
  Proc.new do
6
+ container_type :app
6
7
  baseline_image 'ubuntu'
7
8
  project_attribute name: :environment, default: 'staging'
8
9
  project_attribute name: :foo
9
10
 
10
- app_attribute name: :bar, required: false
11
+ server_attribute name: :bar, required: false
11
12
 
12
13
  environment_variable :app, 'SECRET_KEY' do
13
- @app.secret_key
14
+ @server.secret_key
14
15
  end
15
16
  end
16
17
  end
@@ -18,7 +19,15 @@ describe RubyYacht::AppType do
18
19
  before do
19
20
  RubyYacht.configuration.clear
20
21
  RubyYacht.configure do
21
- app_type(:generic) { baseline_image 'ubuntu' }
22
+ server_type :generic do
23
+ container_type :app
24
+ baseline_image 'ubuntu'
25
+ end
26
+
27
+ server_type :sqlite do
28
+ container_type :database
29
+ baseline_image 'ubuntu'
30
+ end
22
31
  end
23
32
  end
24
33
 
@@ -28,11 +37,12 @@ describe RubyYacht::AppType do
28
37
  system_prefix 'test-project'
29
38
  repository 'github.com'
30
39
  domain 'test.com'
31
- database do
32
- host 'localhost'
33
- name 'test'
34
- username 'test'
35
- password 'test'
40
+
41
+ database :project1, :sqlite do
42
+ host "localhost"
43
+ username "test"
44
+ password "test"
45
+ container_label :sqlite
36
46
  end
37
47
  end
38
48
  end
@@ -40,7 +50,7 @@ describe RubyYacht::AppType do
40
50
  before do
41
51
  block = full_config_block
42
52
  RubyYacht.configure do
43
- app_type :app_type_test do
53
+ server_type :app_type_test do
44
54
  instance_eval(&block)
45
55
  end
46
56
  end
@@ -61,7 +71,7 @@ describe RubyYacht::AppType do
61
71
 
62
72
  app = RubyYacht.configuration.projects.last.apps.first
63
73
  expect(app.name).to eq :test
64
- expect(app.app_type).to eq :app_type_test
74
+ expect(app.server_type).to eq :app_type_test
65
75
  end
66
76
 
67
77
  it "creates attributes for the project attributes on the Project DSL" do
@@ -137,39 +147,53 @@ describe RubyYacht::AppType do
137
147
  end
138
148
 
139
149
  describe "dsl" do
140
- let(:dsl) { RubyYacht::AppType::DSL.new(:app_type_test) }
141
- let(:app_type) { dsl.run(@config_block).create_object }
150
+ let(:dsl) { RubyYacht::ServerType::DSL.new(:app_type_test) }
151
+ let(:server_type) { dsl.run(@config_block).create_object }
142
152
 
143
153
  before do
144
154
  @config_block = full_config_block
145
155
  end
146
156
 
147
157
  it "sets the information on the app type" do
148
- expect(app_type.name).to eq :app_type_test
149
- expect(app_type.baseline_image).to eq 'ubuntu'
158
+ expect(server_type.name).to eq :app_type_test
159
+ expect(server_type.container_type).to eq :app
160
+ expect(server_type.baseline_image).to eq 'ubuntu'
150
161
 
151
- expect(app_type.project_attributes.count).to eq 2
152
- expect(app_type.project_attributes[0]).to eq(name: :environment, default: 'staging')
153
- expect(app_type.project_attributes[1]).to eq(name: :foo)
162
+ expect(server_type.project_attributes.count).to eq 2
163
+ expect(server_type.project_attributes[0]).to eq(name: :environment, default: 'staging')
164
+ expect(server_type.project_attributes[1]).to eq(name: :foo)
154
165
 
155
- expect(app_type.app_attributes.count).to eq 1
156
- expect(app_type.app_attributes[0]).to eq(name: :bar, required: false)
166
+ expect(server_type.server_attributes.count).to eq 1
167
+ expect(server_type.server_attributes[0]).to eq(name: :bar, required: false)
157
168
 
158
- @app = Object.new
159
- @app.define_singleton_method :secret_key do
169
+ @server = Object.new
170
+ @server.define_singleton_method :secret_key do
160
171
  'abc1234'
161
172
  end
162
173
 
163
- expect(app_type.environment_variables.count).to eq 1
164
- expect(app_type.environment_variables[0][:name]).to eq 'SECRET_KEY'
165
- expect(app_type.environment_variables[0][:image]).to eq :app
166
- expect(instance_eval(&app_type.environment_variables[0][:block])).to eq 'abc1234'
174
+ expect(server_type.environment_variables.count).to eq 1
175
+ expect(server_type.environment_variables[0][:name]).to eq 'SECRET_KEY'
176
+ expect(server_type.environment_variables[0][:image]).to eq :app
177
+ expect(instance_eval(&server_type.environment_variables[0][:block])).to eq 'abc1234'
167
178
  end
168
179
 
169
180
  context "with no baseline image" do
170
181
  it "raises an exception" do
171
- @config_block = Proc.new {}
172
- expect { app_type }.to raise_exception "Missing required attribute baseline_image for RubyYacht::AppType::DSL"
182
+ @config_block = Proc.new do
183
+ container_type :app
184
+ end
185
+
186
+ expect { server_type }.to raise_exception "Missing required attribute baseline_image for RubyYacht::ServerType::DSL"
187
+ end
188
+ end
189
+
190
+ context "with no container type" do
191
+ it "raises an exception" do
192
+ @config_block = Proc.new do
193
+ baseline_image 'ubuntu'
194
+ end
195
+
196
+ expect { server_type }.to raise_exception "Missing required attribute container_type for RubyYacht::ServerType::DSL"
173
197
  end
174
198
  end
175
199
  end
@@ -6,6 +6,9 @@
6
6
 
7
7
  FROM ruby:2.3
8
8
 
9
+ ENV RAILS_ENV development
10
+ ENV EXCLUDED_GEM_GROUPS ""
11
+
9
12
  RUN mkdir -p /root/.ssh
10
13
  COPY id_rsa /root/.ssh
11
14
  RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
@@ -1,25 +1,18 @@
1
1
  FROM apollo-debian-app-dependencies
2
2
 
3
- ENV DEBIAN_FRONTEND noninteractive
4
- RUN apt-get install -y mysql-server
5
-
6
3
  ENV DATABASE_USERNAME apollo
7
4
  ENV DATABASE_PASSWORD test
8
5
  ENV DATABASE_NAME apollo
6
+ ENV DATABASE_TYPE sqlite
9
7
 
10
8
  COPY setup.bash /var/docker/setup.bash
11
9
  COPY checkout.bash /var/docker/checkout.bash
12
10
 
13
11
  RUN chmod u+x /var/docker/*
14
12
 
15
- RUN /var/docker/setup.bash apollo apollo test
16
-
17
13
  RUN /var/docker/checkout.bash github.com mars brownleej/mars
18
14
  WORKDIR /var/code/mars
19
15
 
20
- RUN /var/docker/checkout.bash github.com saturn brownleej/saturn
21
- WORKDIR /var/code/saturn
22
-
23
16
  RUN rm -r /var/docker
24
17
  RUN rm -r /var/code
25
18
 
@@ -0,0 +1,30 @@
1
+ FROM apollo-generic-app-dependencies
2
+
3
+ ENV DATABASE_USERNAME apollo
4
+ ENV DATABASE_PASSWORD test
5
+ ENV DATABASE_NAME apollo
6
+ ENV DATABASE_TYPE mysql
7
+ ENV DEBIAN_FRONTEND noninteractive
8
+
9
+ RUN apt-get install -y mysql-server
10
+
11
+ COPY setup.bash /var/docker/setup.bash
12
+ COPY checkout.bash /var/docker/checkout.bash
13
+
14
+ RUN chmod u+x /var/docker/*
15
+
16
+ RUN /var/docker/setup.bash
17
+
18
+ RUN /var/docker/checkout.bash github.com mars brownleej/mars
19
+ WORKDIR /var/code/mars
20
+
21
+ RUN rm -r /var/docker
22
+ RUN rm -r /var/code
23
+
24
+ ENV DATABASE_USERNAME ''
25
+ ENV DATABASE_PASSWORD ''
26
+ ENV DATABASE_NAME ''
27
+
28
+ EXPOSE 3306
29
+
30
+ CMD mysqld_safe --bind-address=0.0.0.0
@@ -1,11 +1,9 @@
1
1
  FROM apollo-rails-app-dependencies
2
2
 
3
- ENV DEBIAN_FRONTEND noninteractive
4
- RUN apt-get install -y mysql-server
5
-
6
3
  ENV DATABASE_USERNAME apollo
7
4
  ENV DATABASE_PASSWORD test
8
5
  ENV DATABASE_NAME apollo
6
+ ENV DATABASE_TYPE sqlite
9
7
 
10
8
  COPY setup.bash /var/docker/setup.bash
11
9
  COPY checkout.bash /var/docker/checkout.bash
@@ -13,8 +11,6 @@ COPY load_seeds.rb /var/docker/load_seeds.rb
13
11
 
14
12
  RUN chmod u+x /var/docker/*
15
13
 
16
- RUN /var/docker/setup.bash apollo apollo test
17
-
18
14
  RUN /var/docker/checkout.bash github.com mars brownleej/mars
19
15
  WORKDIR /var/code/mars
20
16
  RUN /var/docker/load_seeds.rb
@@ -1,11 +1,9 @@
1
1
  FROM apollo-debian-app-dependencies
2
2
 
3
- ENV DEBIAN_FRONTEND noninteractive
4
- RUN apt-get install -y mysql-server
5
-
6
3
  ENV DATABASE_USERNAME apollo
7
4
  ENV DATABASE_PASSWORD test
8
5
  ENV DATABASE_NAME apollo
6
+ ENV DATABASE_TYPE sqlite
9
7
 
10
8
  COPY setup.bash /var/docker/setup.bash
11
9
  COPY checkout.bash /var/docker/checkout.bash
@@ -13,15 +11,10 @@ COPY hook1.rb /var/docker/hook1.rb
13
11
 
14
12
  RUN chmod u+x /var/docker/*
15
13
 
16
- RUN /var/docker/setup.bash apollo apollo test
17
-
18
14
  RUN /var/docker/checkout.bash github.com mars brownleej/mars
19
15
  WORKDIR /var/code/mars
20
16
  RUN /var/docker/hook1.rb
21
17
 
22
- RUN /var/docker/checkout.bash github.com saturn brownleej/saturn
23
- WORKDIR /var/code/saturn
24
-
25
18
  RUN rm -r /var/docker
26
19
  RUN rm -r /var/code
27
20
 
@@ -0,0 +1,6 @@
1
+ #! /bin/bash
2
+
3
+ cd /var/code;
4
+ /var/docker/checkout.bash;
5
+
6
+ cp /var/docker/hook1.rb /var/code/scripts/hook1.rb;
@@ -1,9 +1,5 @@
1
1
  FROM apollo-generic-app-dependencies
2
2
 
3
- ENV DATABASE_HOST db.test.com
4
- ENV DATABASE_NAME apollo
5
- ENV DATABASE_PASSWORD test
6
- ENV DATABASE_USERNAME apollo
7
3
  ENV APP_PORT 8080
8
4
  ENV REPOSITORY_HOST github.com
9
5
  ENV REPOSITORY_NAME brownleej/mars
@@ -4,11 +4,11 @@ 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 DATABASE_TYPE sqlite
7
8
  ENV APP_PORT 8080
8
9
  ENV REPOSITORY_HOST github.com
9
10
  ENV REPOSITORY_NAME brownleej/mars
10
11
  ENV SYSTEM_PREFIX apollo
11
- ENV RAILS_ENV development
12
12
  ENV SECRET_KEY_BASE abc
13
13
 
14
14
  RUN rm -r /var/code
@@ -24,7 +24,7 @@ RUN chmod u+x /var/docker/*
24
24
 
25
25
  RUN /var/docker/checkout.bash
26
26
  WORKDIR /var/code
27
- RUN bundle install && bundle clean --force
27
+ RUN bundle install --clean
28
28
 
29
29
  EXPOSE 8080
30
30
 
@@ -1,9 +1,5 @@
1
1
  FROM apollo-generic-app-dependencies
2
2
 
3
- ENV DATABASE_HOST db.test.com
4
- ENV DATABASE_NAME apollo
5
- ENV DATABASE_PASSWORD test
6
- ENV DATABASE_USERNAME apollo
7
3
  ENV APP_PORT 8080
8
4
  ENV REPOSITORY_HOST github.com
9
5
  ENV REPOSITORY_NAME brownleej/mars
@@ -1,9 +1,5 @@
1
1
  FROM apollo-generic-app-dependencies
2
2
 
3
- ENV DATABASE_HOST db.test.com
4
- ENV DATABASE_NAME apollo
5
- ENV DATABASE_PASSWORD test
6
- ENV DATABASE_USERNAME apollo
7
3
  ENV APP_PORT 8080
8
4
  ENV REPOSITORY_HOST github.com
9
5
  ENV REPOSITORY_NAME brownleej/mars
@@ -0,0 +1,23 @@
1
+ FROM apollo-generic-app-dependencies
2
+
3
+ ENV APP_PORT 8080
4
+ ENV REPOSITORY_HOST github.com
5
+ ENV REPOSITORY_NAME brownleej/mars
6
+ ENV SYSTEM_PREFIX apollo
7
+
8
+ RUN rm -r /var/code
9
+ RUN mkdir -p /var/code
10
+
11
+ COPY checkout.bash /var/docker/checkout.bash
12
+ COPY before_startup.bash /var/docker/before_startup.bash
13
+ COPY startup.bash /var/docker/startup.bash
14
+ COPY hook1.rb /var/docker/hook1.rb
15
+
16
+ RUN chmod u+x /var/docker/*
17
+
18
+ RUN /var/docker/checkout.bash
19
+ WORKDIR /var/code
20
+
21
+ EXPOSE 8080
22
+
23
+ CMD /var/docker/startup.bash
@@ -0,0 +1,27 @@
1
+ FROM apollo-generic-app-dependencies
2
+
3
+ ENV DATABASE_HOST apollo-mysql
4
+ ENV DATABASE_NAME apollo
5
+ ENV DATABASE_PASSWORD test
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV DATABASE_TYPE sqlite
8
+ ENV APP_PORT 8080
9
+ ENV REPOSITORY_HOST github.com
10
+ ENV REPOSITORY_NAME brownleej/mars
11
+ ENV SYSTEM_PREFIX apollo
12
+
13
+ RUN rm -r /var/code
14
+ RUN mkdir -p /var/code
15
+
16
+ COPY checkout.bash /var/docker/checkout.bash
17
+ COPY before_startup.bash /var/docker/before_startup.bash
18
+ COPY startup.bash /var/docker/startup.bash
19
+
20
+ RUN chmod u+x /var/docker/*
21
+
22
+ RUN /var/docker/checkout.bash
23
+ WORKDIR /var/code
24
+
25
+ EXPOSE 8080
26
+
27
+ CMD /var/docker/startup.bash
@@ -0,0 +1,27 @@
1
+ FROM apollo-generic-app-dependencies
2
+
3
+ ENV DATABASE_HOST db1.test.com
4
+ ENV DATABASE_NAME apollo
5
+ ENV DATABASE_PASSWORD test
6
+ ENV DATABASE_USERNAME apollo
7
+ ENV DATABASE_TYPE mysql
8
+ ENV APP_PORT 8080
9
+ ENV REPOSITORY_HOST github.com
10
+ ENV REPOSITORY_NAME brownleej/mars
11
+ ENV SYSTEM_PREFIX apollo
12
+
13
+ RUN rm -r /var/code
14
+ RUN mkdir -p /var/code
15
+
16
+ COPY checkout.bash /var/docker/checkout.bash
17
+ COPY before_startup.bash /var/docker/before_startup.bash
18
+ COPY startup.bash /var/docker/startup.bash
19
+
20
+ RUN chmod u+x /var/docker/*
21
+
22
+ RUN /var/docker/checkout.bash
23
+ WORKDIR /var/code
24
+
25
+ EXPOSE 8080
26
+
27
+ CMD /var/docker/startup.bash