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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/doc/TODO.md +1 -8
- data/lib/ruby_yacht/dsl/app.rb +37 -10
- data/lib/ruby_yacht/dsl/configuration.rb +21 -21
- data/lib/ruby_yacht/dsl/database.rb +53 -0
- data/lib/ruby_yacht/dsl/dsl.rb +14 -8
- data/lib/ruby_yacht/dsl/hook.rb +35 -15
- data/lib/ruby_yacht/dsl/project.rb +23 -10
- data/lib/ruby_yacht/dsl/{app_type.rb → server_type.rb} +39 -29
- data/lib/ruby_yacht/dsl.rb +1 -1
- data/lib/ruby_yacht/images/app/Dockerfile.erb +9 -5
- data/lib/ruby_yacht/images/app-dependencies/Dockerfile.erb +2 -2
- data/lib/ruby_yacht/images/database/Dockerfile.erb +12 -11
- data/lib/ruby_yacht/images/web/Dockerfile.erb +6 -2
- data/lib/ruby_yacht/images/web/add_app.rb +7 -1
- data/lib/ruby_yacht/images/web/app_config.erb +2 -0
- data/lib/ruby_yacht/plugins/mysql/scripts/setup.bash +11 -0
- data/lib/ruby_yacht/plugins/mysql.rb +27 -0
- data/lib/ruby_yacht/plugins/rails/scripts/install_gems.rb +6 -1
- data/lib/ruby_yacht/plugins/rails/scripts/load_seeds.rb +6 -4
- data/lib/ruby_yacht/plugins/rails/scripts/prepare_rails_for_launch.rb +1 -0
- data/lib/ruby_yacht/plugins/rails/scripts/update_rails_config.rb +1 -5
- data/lib/ruby_yacht/plugins/rails.rb +12 -4
- data/lib/ruby_yacht/plugins.rb +2 -1
- data/lib/ruby_yacht/runner/build_images.rb +32 -26
- data/lib/ruby_yacht/runner/checkout.rb +5 -4
- data/lib/ruby_yacht/runner/run_containers.rb +7 -6
- data/lib/ruby_yacht/runner/services.rb +2 -2
- data/lib/ruby_yacht/runner/shell.rb +5 -4
- data/lib/ruby_yacht/runner/update_hosts.rb +2 -1
- data/ruby_yacht.gemspec +1 -1
- data/spec/dsl/app_spec.rb +96 -10
- data/spec/dsl/configuration_spec.rb +53 -55
- data/spec/dsl/database_spec.rb +70 -12
- data/spec/dsl/hook_spec.rb +36 -19
- data/spec/dsl/project_spec.rb +26 -18
- data/spec/dsl/{app_type_spec.rb → server_type_spec.rb} +52 -28
- data/spec/fixtures/app-dependencies-dockerfile-rails +3 -0
- data/spec/fixtures/database-dockerfile +1 -8
- data/spec/fixtures/database-dockerfile-mysql +30 -0
- data/spec/fixtures/database-dockerfile-rails +1 -5
- data/spec/fixtures/database-dockerfile-with-seed-hooks +1 -8
- data/spec/fixtures/mars-before-startup-with-custom-file-copy +6 -0
- data/spec/fixtures/mars-dockerfile +0 -4
- data/spec/fixtures/mars-dockerfile-rails +2 -2
- data/spec/fixtures/mars-dockerfile-with-after-checkout-hooks +0 -4
- data/spec/fixtures/mars-dockerfile-with-before-startup-hooks +0 -4
- data/spec/fixtures/mars-dockerfile-with-custom-file-copy +23 -0
- data/spec/fixtures/mars-dockerfile-with-local-database +27 -0
- data/spec/fixtures/mars-dockerfile-with-remote-database +27 -0
- data/spec/fixtures/web-dockerfile-with-eponymous-app +20 -0
- data/spec/plugins/mysql_spec.rb +64 -0
- data/spec/plugins/rails_spec.rb +103 -43
- data/spec/runner/build_images_spec.rb +142 -11
- data/spec/runner/checkout_spec.rb +4 -4
- data/spec/runner/run_containers_spec.rb +21 -2
- data/spec/runner/runner_spec.rb +1 -1
- data/spec/runner/services_spec.rb +7 -2
- data/spec/runner/shell_spec.rb +3 -3
- data/spec/runner/update_hosts_spec.rb +26 -0
- data/spec/support/test_project.rb +16 -20
- metadata +20 -5
- data/lib/ruby_yacht/images/database/setup.bash +0 -15
data/spec/dsl/hook_spec.rb
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe RubyYacht::Hook do
|
4
|
-
describe "
|
5
|
-
context "with no
|
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.
|
7
|
+
expect(subject.copied_file_name).to eq ""
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
context "with a
|
12
|
-
before { subject.
|
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
|
15
|
-
expect(subject.
|
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
|
-
|
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
|
-
|
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.
|
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
|
47
|
+
it "can create a hook for running a script" do
|
47
48
|
@config_block = Proc.new do
|
48
|
-
|
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.
|
55
|
-
expect(hook.
|
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
|
-
|
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
|
-
|
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.
|
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
|
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
|
-
|
118
|
+
server_type :invalid
|
102
119
|
command 'whoami'
|
103
120
|
end
|
104
121
|
end
|
data/spec/dsl/project_spec.rb
CHANGED
@@ -7,7 +7,14 @@ describe RubyYacht::Project do
|
|
7
7
|
before do
|
8
8
|
RubyYacht.configuration.clear
|
9
9
|
RubyYacht.configure do
|
10
|
-
|
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.
|
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 "
|
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
|
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::
|
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
|
-
|
11
|
+
server_attribute name: :bar, required: false
|
11
12
|
|
12
13
|
environment_variable :app, 'SECRET_KEY' do
|
13
|
-
@
|
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
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
username
|
35
|
-
password
|
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
|
-
|
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.
|
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::
|
141
|
-
let(:
|
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(
|
149
|
-
expect(
|
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(
|
152
|
-
expect(
|
153
|
-
expect(
|
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(
|
156
|
-
expect(
|
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
|
-
@
|
159
|
-
@
|
169
|
+
@server = Object.new
|
170
|
+
@server.define_singleton_method :secret_key do
|
160
171
|
'abc1234'
|
161
172
|
end
|
162
173
|
|
163
|
-
expect(
|
164
|
-
expect(
|
165
|
-
expect(
|
166
|
-
expect(instance_eval(&
|
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
|
-
|
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
|
@@ -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
|
|
@@ -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
|
27
|
+
RUN bundle install --clean
|
28
28
|
|
29
29
|
EXPOSE 8080
|
30
30
|
|
@@ -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
|