ruby_yacht 0.5.0 → 0.6.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.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/.rdoc_options +8 -2
- data/.rspec +1 -0
- data/.travis.yml +17 -1
- data/Gemfile.lock +18 -2
- data/README.md +28 -10
- data/bin/ruby_yacht +5 -0
- data/doc/TODO.md +1 -20
- data/doc/configuration.md +104 -21
- data/doc/configuration_sample.rb +19 -8
- data/doc/contributing.md +28 -5
- data/doc/plugins.md +105 -45
- data/lib/ruby_yacht/dsl/app.rb +14 -18
- data/lib/ruby_yacht/dsl/configuration.rb +51 -32
- data/lib/ruby_yacht/dsl/database.rb +24 -8
- data/lib/ruby_yacht/dsl/dsl.rb +32 -4
- data/lib/ruby_yacht/dsl/hook.rb +182 -48
- data/lib/ruby_yacht/dsl/project.rb +20 -14
- data/lib/ruby_yacht/dsl/server_type.rb +14 -31
- data/lib/ruby_yacht/dsl/web_server.rb +87 -0
- data/lib/ruby_yacht/dsl.rb +1 -0
- data/lib/ruby_yacht/images/app/Dockerfile.erb +17 -6
- data/lib/ruby_yacht/images/app/before_startup.bash.erb +5 -3
- data/lib/ruby_yacht/images/app/startup.bash.erb +5 -2
- data/lib/ruby_yacht/images/app-dependencies/Dockerfile.erb +7 -11
- data/lib/ruby_yacht/images/database/Dockerfile.erb +7 -18
- data/lib/ruby_yacht/images/database/startup.bash.erb +1 -1
- data/lib/ruby_yacht/images/web/Dockerfile.erb +25 -19
- data/lib/ruby_yacht/plugins/mysql.rb +18 -8
- data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/add_app.rb +5 -5
- data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/add_project.rb +3 -3
- data/lib/ruby_yacht/plugins/nginx.rb +28 -0
- data/lib/ruby_yacht/plugins/rails/scripts/build_new_app.rb +10 -0
- data/lib/ruby_yacht/plugins/rails/scripts/update_rails_config.rb +6 -1
- data/lib/ruby_yacht/plugins/rails.rb +34 -19
- data/lib/ruby_yacht/plugins.rb +2 -1
- data/lib/ruby_yacht/runner/build_images.rb +87 -73
- data/lib/ruby_yacht/runner/checkout.rb +1 -1
- data/lib/ruby_yacht/runner/command.rb +13 -1
- data/lib/ruby_yacht/runner/create_new_project.rb +91 -0
- data/lib/ruby_yacht/runner/help.rb +1 -1
- data/lib/ruby_yacht/runner/run_containers.rb +17 -21
- data/lib/ruby_yacht/runner/runner.rb +27 -2
- data/lib/ruby_yacht/runner/services.rb +15 -10
- data/lib/ruby_yacht/runner/shell.rb +1 -1
- data/lib/ruby_yacht/runner/update_hosts.rb +16 -11
- data/lib/ruby_yacht/runner.rb +1 -0
- data/log/.gitkeep +0 -0
- data/ruby_yacht.gemspec +4 -2
- data/spec/docker/Dockerfile +19 -3
- data/spec/docker/install_gems.bash +5 -0
- data/spec/docker/run.bash +44 -0
- data/spec/docker/startup.bash +10 -0
- data/spec/dsl/app_spec.rb +66 -38
- data/spec/dsl/configuration_spec.rb +236 -30
- data/spec/dsl/database_spec.rb +103 -4
- data/spec/dsl/dsl_spec.rb +46 -3
- data/spec/dsl/hook_spec.rb +278 -57
- data/spec/dsl/project_spec.rb +75 -45
- data/spec/dsl/server_type_spec.rb +52 -12
- data/spec/dsl/web_server_spec.rb +160 -0
- data/spec/fixtures/apollo-new-project-config +20 -0
- data/spec/fixtures/app-dependencies-dockerfile-generic +4 -7
- data/spec/fixtures/app-dependencies-dockerfile-generic-with-library-install +6 -10
- data/spec/fixtures/app-dependencies-dockerfile-rails +9 -11
- data/spec/fixtures/app-dependencies-dockerfile-with-no-repository +20 -0
- data/spec/fixtures/database-dockerfile +1 -1
- data/spec/fixtures/database-dockerfile-mysql +3 -3
- data/spec/fixtures/database-dockerfile-rails +5 -4
- data/spec/fixtures/database-dockerfile-rails-with-no-repository +27 -0
- data/spec/fixtures/database-dockerfile-with-seed-hooks +3 -3
- data/spec/fixtures/database-startup-mysql +2 -1
- data/spec/fixtures/mars-before-startup +2 -2
- data/spec/fixtures/mars-before-startup-rails +5 -4
- data/spec/fixtures/mars-before-startup-with-before-startup-hooks +5 -4
- data/spec/fixtures/mars-before-startup-with-custom-file-copy +3 -3
- data/spec/fixtures/mars-before-startup-with-no-repository +3 -0
- data/spec/fixtures/mars-dockerfile +3 -2
- data/spec/fixtures/mars-dockerfile-rails +6 -5
- data/spec/fixtures/mars-dockerfile-rails-with-no-repository +32 -0
- data/spec/fixtures/mars-dockerfile-with-after-checkout-hooks +5 -4
- data/spec/fixtures/mars-dockerfile-with-before-startup-hooks +5 -4
- data/spec/fixtures/mars-dockerfile-with-custom-file-copy +4 -3
- data/spec/fixtures/mars-dockerfile-with-local-database +4 -2
- data/spec/fixtures/mars-dockerfile-with-no-repository +22 -0
- data/spec/fixtures/mars-dockerfile-with-remote-database +4 -2
- data/spec/fixtures/mars-startup +2 -2
- data/spec/fixtures/mars-startup-rails +2 -2
- data/spec/fixtures/mars-startup-rails-with-no-repository +5 -0
- data/spec/fixtures/mars-startup-with-no-repository +4 -0
- data/spec/fixtures/web-dockerfile +18 -11
- data/spec/fixtures/web-dockerfile-jupiter +28 -0
- data/spec/fixtures/web-dockerfile-nginx +38 -0
- data/spec/fixtures/web-dockerfile-with-eponymous-app +16 -10
- data/spec/fixtures/web-dockerfile-with-primary-app +16 -10
- data/spec/integration/build_images_spec.rb +210 -0
- data/spec/integration/build_spec.rb +23 -0
- data/spec/integration/checkout_spec.rb +94 -0
- data/spec/integration/create_new_project_spec.rb +50 -0
- data/spec/integration/implode_spec.rb +20 -0
- data/spec/integration/run.rb +93 -0
- data/spec/integration/run_containers_spec.rb +279 -0
- data/spec/integration/services_spec.rb +99 -0
- data/spec/integration/shell_spec.rb +31 -0
- data/spec/integration/update_hosts_spec.rb +35 -0
- data/spec/plugins/mysql_spec.rb +18 -1
- data/spec/plugins/nginx_spec.rb +66 -0
- data/spec/plugins/rails_spec.rb +61 -89
- data/spec/runner/build_images_spec.rb +111 -58
- data/spec/runner/command_spec.rb +55 -3
- data/spec/runner/create_new_project_spec.rb +93 -0
- data/spec/runner/help_spec.rb +5 -1
- data/spec/runner/run_containers_spec.rb +22 -10
- data/spec/runner/runner_spec.rb +31 -4
- data/spec/runner/services_spec.rb +32 -4
- data/spec/runner/update_hosts_spec.rb +2 -1
- data/spec/spec_helper.rb +16 -1
- data/spec/support/integration_helpers.rb +76 -0
- data/spec/support/test_project.rb +15 -3
- metadata +97 -14
- data/spec/docker/build.bash +0 -10
- data/spec/fixtures/deploy-dockerfile +0 -2
- data/spec/fixtures/multi-project-web-dockerfile +0 -25
- /data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/app_config.erb +0 -0
- /data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/index.html.erb +0 -0
- /data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/index_config.erb +0 -0
|
@@ -10,9 +10,7 @@ describe RubyYacht::ServerType do
|
|
|
10
10
|
|
|
11
11
|
server_attribute name: :bar, required: false
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
@server.secret_key
|
|
15
|
-
end
|
|
13
|
+
server_default database_name: 'foo_db'
|
|
16
14
|
end
|
|
17
15
|
end
|
|
18
16
|
|
|
@@ -36,12 +34,12 @@ describe RubyYacht::ServerType do
|
|
|
36
34
|
Proc.new do
|
|
37
35
|
system_prefix 'test-project'
|
|
38
36
|
repository 'github.com'
|
|
39
|
-
domain 'test.com'
|
|
40
37
|
|
|
41
|
-
database :
|
|
38
|
+
database :sqlite, :project1 do
|
|
42
39
|
host "localhost"
|
|
43
40
|
username "test"
|
|
44
41
|
password "test"
|
|
42
|
+
port 1234
|
|
45
43
|
container_label :sqlite
|
|
46
44
|
end
|
|
47
45
|
end
|
|
@@ -95,7 +93,7 @@ describe RubyYacht::ServerType do
|
|
|
95
93
|
instance_eval(&block)
|
|
96
94
|
app_type_test_foo 'test value'
|
|
97
95
|
|
|
98
|
-
app :
|
|
96
|
+
app :app_type_test, :test1 do
|
|
99
97
|
app_type_test_bar 'baz'
|
|
100
98
|
repository_name 'brownleej/test'
|
|
101
99
|
end
|
|
@@ -115,7 +113,7 @@ describe RubyYacht::ServerType do
|
|
|
115
113
|
instance_eval(&block)
|
|
116
114
|
app_type_test_foo 'test value'
|
|
117
115
|
|
|
118
|
-
app :
|
|
116
|
+
app :generic, :test1 do
|
|
119
117
|
begin
|
|
120
118
|
app_type_test_bar 'baz'
|
|
121
119
|
rescue
|
|
@@ -144,6 +142,53 @@ describe RubyYacht::ServerType do
|
|
|
144
142
|
end).to raise_exception "Missing required attribute app_type_test_foo for RubyYacht::Project::DSL"
|
|
145
143
|
end
|
|
146
144
|
end
|
|
145
|
+
|
|
146
|
+
context "with a default value for an existing server attribute" do
|
|
147
|
+
before do
|
|
148
|
+
block = project_configuration_block
|
|
149
|
+
RubyYacht.configure do
|
|
150
|
+
server_type :app_type_test2 do
|
|
151
|
+
container_type :app
|
|
152
|
+
baseline_image 'ubuntu'
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
RubyYacht.configure do
|
|
157
|
+
project :test do
|
|
158
|
+
instance_eval(&block)
|
|
159
|
+
app_type_test_foo 'test value'
|
|
160
|
+
|
|
161
|
+
app_type_test_app :app1 do
|
|
162
|
+
repository_name 'brownleej/test'
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
app_type_test_app :app2 do
|
|
166
|
+
repository_name 'brownleej/test'
|
|
167
|
+
database_name 'testdb'
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
app_type_test2_app :app3 do
|
|
171
|
+
repository_name 'brownleej/test'
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
it "sets those default values" do
|
|
178
|
+
app = RubyYacht.configuration.projects.first.apps[0]
|
|
179
|
+
expect(app.database_name).to eq 'foo_db'
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
it "does not override explicit values" do
|
|
183
|
+
app = RubyYacht.configuration.projects.first.apps[1]
|
|
184
|
+
expect(app.database_name).to eq 'testdb'
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
it "does not set a default value on servers of other types" do
|
|
188
|
+
app = RubyYacht.configuration.projects.first.apps[2]
|
|
189
|
+
expect(app.database_name).to be_nil
|
|
190
|
+
end
|
|
191
|
+
end
|
|
147
192
|
end
|
|
148
193
|
|
|
149
194
|
describe "dsl" do
|
|
@@ -170,11 +215,6 @@ describe RubyYacht::ServerType do
|
|
|
170
215
|
@server.define_singleton_method :secret_key do
|
|
171
216
|
'abc1234'
|
|
172
217
|
end
|
|
173
|
-
|
|
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'
|
|
178
218
|
end
|
|
179
219
|
|
|
180
220
|
context "with no baseline image" do
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe RubyYacht::WebServer do
|
|
4
|
+
describe "DSL" do
|
|
5
|
+
let(:name) { :test_app }
|
|
6
|
+
let(:server) { RubyYacht::WebServer::DSL.new(:test, name).run(@builder).create_object }
|
|
7
|
+
|
|
8
|
+
before do
|
|
9
|
+
RubyYacht.configuration.clear
|
|
10
|
+
RubyYacht.configure do
|
|
11
|
+
server_type :test do
|
|
12
|
+
container_type :web
|
|
13
|
+
baseline_image 'ubuntu'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 'can create a web server with all attributes' do
|
|
19
|
+
@builder = Proc.new do
|
|
20
|
+
domain 'test.com'
|
|
21
|
+
port 8080
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
expect(server.name).to eq :test_app
|
|
25
|
+
expect(server.domain).to eq 'test.com'
|
|
26
|
+
expect(server.port).to eq 8080
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'defaults the name to web' do
|
|
30
|
+
@builder = Proc.new do
|
|
31
|
+
domain 'test.com'
|
|
32
|
+
port 8080
|
|
33
|
+
end
|
|
34
|
+
server = RubyYacht::WebServer::DSL.new(:test).run(@builder).create_object
|
|
35
|
+
|
|
36
|
+
expect(server.name).to eq :web
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it 'requires the domain' do
|
|
40
|
+
@builder = Proc.new do
|
|
41
|
+
port 8080
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
expect { server }.to raise_exception 'Missing required attribute domain for RubyYacht::WebServer::DSL'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'defaults the port to 80' do
|
|
48
|
+
@builder = Proc.new do
|
|
49
|
+
domain 'test.com'
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
expect(server.port).to eq 80
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'requires a defined server type' do
|
|
56
|
+
@builder = Proc.new do
|
|
57
|
+
domain 'test.com'
|
|
58
|
+
port 8080
|
|
59
|
+
server_type :invalid
|
|
60
|
+
end
|
|
61
|
+
expect do
|
|
62
|
+
self.server
|
|
63
|
+
end.to raise_exception("RubyYacht::WebServer::DSL has invalid web server type `invalid`")
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'requires a defined server type for web servers' do
|
|
67
|
+
RubyYacht.configure do
|
|
68
|
+
server_type :sqlite do
|
|
69
|
+
container_type :database
|
|
70
|
+
baseline_image 'ubuntu'
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
@builder = Proc.new do
|
|
75
|
+
domain 'test.com'
|
|
76
|
+
port 8080
|
|
77
|
+
server_type :sqlite
|
|
78
|
+
end
|
|
79
|
+
expect do
|
|
80
|
+
self.server
|
|
81
|
+
end.to raise_exception("RubyYacht::WebServer::DSL has invalid web server type `sqlite`")
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
it 'allows creating a server with the default name in the project DSL' do
|
|
85
|
+
RubyYacht.configure do
|
|
86
|
+
project :project1 do
|
|
87
|
+
repository 'github.com'
|
|
88
|
+
system_prefix :project1
|
|
89
|
+
|
|
90
|
+
test_web_server do
|
|
91
|
+
domain 'project1.test.com'
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
server = RubyYacht.configuration.projects.first.web_servers.first
|
|
97
|
+
expect(server.name).to eq :web
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
describe 'project' do
|
|
102
|
+
before do
|
|
103
|
+
RubyYacht.configuration.clear
|
|
104
|
+
RubyYacht.configure do
|
|
105
|
+
server_type :test do
|
|
106
|
+
container_type :web
|
|
107
|
+
baseline_image 'ubuntu'
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
RubyYacht.configure do
|
|
111
|
+
project :project1 do
|
|
112
|
+
repository 'github.com'
|
|
113
|
+
system_prefix :project1
|
|
114
|
+
|
|
115
|
+
test_web_server :server1 do
|
|
116
|
+
domain 'project1.test.com'
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
test_web_server :server2 do
|
|
120
|
+
domain 'project2.test.com'
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
project :project2 do
|
|
125
|
+
repository 'github.com'
|
|
126
|
+
system_prefix :project2
|
|
127
|
+
|
|
128
|
+
test_web_server :app3 do
|
|
129
|
+
domain 'project3.test.com'
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it 'finds the project that contains the server' do
|
|
136
|
+
server2 = RubyYacht.configuration.projects[0].web_servers[1]
|
|
137
|
+
expect(server2.project.name).to eq :project1
|
|
138
|
+
|
|
139
|
+
server3 = RubyYacht.configuration.projects[1].web_servers[0]
|
|
140
|
+
expect(server3.project.name).to eq :project2
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
describe 'container_name' do
|
|
145
|
+
before do
|
|
146
|
+
@project = RubyYacht::Project.new
|
|
147
|
+
@project.name = :test_project
|
|
148
|
+
@project.system_prefix = :tests
|
|
149
|
+
|
|
150
|
+
@server = RubyYacht::WebServer.new
|
|
151
|
+
@server.name = 'server1'
|
|
152
|
+
@project.web_servers = [@server]
|
|
153
|
+
RubyYacht.configuration.projects << @project
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
it "combines the project's prefix with the server's name" do
|
|
157
|
+
expect(@server.container_name).to eq 'tests-server1'
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'ruby_yacht'
|
|
2
|
+
|
|
3
|
+
RubyYacht.configure do
|
|
4
|
+
project :apollo do
|
|
5
|
+
system_prefix :apollo
|
|
6
|
+
repository 'github.com'
|
|
7
|
+
rails_secret_key_base 'testkey'
|
|
8
|
+
check_out_locally
|
|
9
|
+
|
|
10
|
+
rails_app :apollo
|
|
11
|
+
|
|
12
|
+
primary_app :apollo
|
|
13
|
+
|
|
14
|
+
nginx_web_server do
|
|
15
|
+
domain 'apollo.test.com'
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
RubyYacht::Runner.run
|
|
@@ -11,16 +11,13 @@ COPY id_rsa /root/.ssh
|
|
|
11
11
|
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
|
|
12
12
|
|
|
13
13
|
RUN mkdir -p /var/docker/
|
|
14
|
-
RUN
|
|
14
|
+
RUN mkdir -p /var/code/
|
|
15
15
|
|
|
16
|
-
RUN
|
|
16
|
+
RUN apt-get update && apt-get upgrade -y
|
|
17
17
|
|
|
18
18
|
RUN git clone git@github.com:brownleej/mars /var/code/mars
|
|
19
19
|
WORKDIR /var/code/mars
|
|
20
20
|
|
|
21
|
-
RUN rm /var/docker/*
|
|
22
|
-
|
|
23
|
-
WORKDIR /
|
|
21
|
+
RUN rm -f /var/docker/*
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
RUN apt-get install -y mysql-client
|
|
23
|
+
WORKDIR /
|
|
@@ -11,19 +11,15 @@ COPY id_rsa /root/.ssh
|
|
|
11
11
|
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
|
|
12
12
|
|
|
13
13
|
RUN mkdir -p /var/docker/
|
|
14
|
-
RUN
|
|
14
|
+
RUN mkdir -p /var/code/
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
RUN chmod u+x /var/docker/*
|
|
16
|
+
RUN apt-get update && apt-get upgrade -y
|
|
19
17
|
|
|
20
18
|
RUN git clone git@github.com:brownleej/mars /var/code/mars
|
|
21
19
|
WORKDIR /var/code/mars
|
|
22
|
-
|
|
20
|
+
COPY hook2.rb /var/docker/
|
|
21
|
+
RUN ruby /var/docker/hook2.rb
|
|
23
22
|
|
|
24
|
-
RUN rm /var/docker/*
|
|
23
|
+
RUN rm -f /var/docker/*
|
|
25
24
|
|
|
26
|
-
WORKDIR /
|
|
27
|
-
|
|
28
|
-
RUN apt-get update && apt-get upgrade -y
|
|
29
|
-
RUN apt-get install -y mysql-client
|
|
25
|
+
WORKDIR /
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
FROM ruby:2.3
|
|
8
8
|
|
|
9
9
|
ENV RAILS_ENV development
|
|
10
|
+
ENV SECRET_KEY_BASE abc
|
|
10
11
|
ENV EXCLUDED_GEM_GROUPS ""
|
|
11
12
|
|
|
12
13
|
RUN mkdir -p /root/.ssh
|
|
@@ -14,23 +15,20 @@ COPY id_rsa /root/.ssh
|
|
|
14
15
|
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
|
|
15
16
|
|
|
16
17
|
RUN mkdir -p /var/docker/
|
|
17
|
-
RUN
|
|
18
|
+
RUN mkdir -p /var/code/
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
RUN chmod u+x /var/docker/*
|
|
20
|
+
RUN apt-get update && apt-get upgrade -y
|
|
22
21
|
|
|
23
22
|
RUN git clone git@github.com:brownleej/mars /var/code/mars
|
|
24
23
|
WORKDIR /var/code/mars
|
|
25
|
-
|
|
24
|
+
COPY install_gems.rb /var/docker/
|
|
25
|
+
RUN ruby /var/docker/install_gems.rb
|
|
26
26
|
|
|
27
27
|
RUN git clone git@github.com:brownleej/saturn /var/code/saturn
|
|
28
28
|
WORKDIR /var/code/saturn
|
|
29
|
-
|
|
29
|
+
COPY install_gems.rb /var/docker/
|
|
30
|
+
RUN ruby /var/docker/install_gems.rb
|
|
30
31
|
|
|
31
|
-
RUN rm /var/docker/*
|
|
32
|
+
RUN rm -f /var/docker/*
|
|
32
33
|
|
|
33
|
-
WORKDIR /
|
|
34
|
-
|
|
35
|
-
RUN apt-get update && apt-get upgrade -y
|
|
36
|
-
RUN apt-get install -y mysql-client
|
|
34
|
+
WORKDIR /
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
RUN mkdir -p /var/code/
|
|
15
|
+
|
|
16
|
+
RUN apt-get update && apt-get upgrade -y
|
|
17
|
+
|
|
18
|
+
RUN rm -f /var/docker/*
|
|
19
|
+
|
|
20
|
+
WORKDIR /
|
|
@@ -4,17 +4,17 @@ ENV DATABASE_USERNAME apollo
|
|
|
4
4
|
ENV DATABASE_PASSWORD test
|
|
5
5
|
ENV DATABASE_NAME apollo
|
|
6
6
|
ENV DATABASE_TYPE mysql
|
|
7
|
-
ENV DEBIAN_FRONTEND noninteractive
|
|
8
7
|
|
|
9
8
|
COPY checkout.bash /var/docker/checkout.bash
|
|
10
9
|
COPY startup.bash /var/docker/startup.bash
|
|
11
|
-
COPY setup.bash /var/docker/setup.bash
|
|
12
10
|
|
|
13
11
|
RUN chmod u+x /var/docker/*
|
|
14
12
|
|
|
13
|
+
ENV DEBIAN_FRONTEND noninteractive
|
|
15
14
|
RUN apt-get install -y mysql-server
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
COPY setup.bash /var/docker/
|
|
17
|
+
RUN bash /var/docker/setup.bash
|
|
18
18
|
|
|
19
19
|
RUN /var/docker/checkout.bash github.com mars brownleej/mars
|
|
20
20
|
WORKDIR /var/code/mars
|
|
@@ -7,17 +7,18 @@ ENV DATABASE_TYPE sqlite
|
|
|
7
7
|
|
|
8
8
|
COPY checkout.bash /var/docker/checkout.bash
|
|
9
9
|
COPY startup.bash /var/docker/startup.bash
|
|
10
|
-
COPY load_seeds.rb /var/docker/load_seeds.rb
|
|
11
10
|
|
|
12
11
|
RUN chmod u+x /var/docker/*
|
|
13
12
|
|
|
14
13
|
RUN /var/docker/checkout.bash github.com mars brownleej/mars
|
|
15
14
|
WORKDIR /var/code/mars
|
|
16
|
-
|
|
15
|
+
COPY load_seeds.rb /var/docker/
|
|
16
|
+
RUN ruby /var/docker/load_seeds.rb
|
|
17
17
|
|
|
18
18
|
RUN /var/docker/checkout.bash github.com saturn brownleej/saturn
|
|
19
19
|
WORKDIR /var/code/saturn
|
|
20
|
-
|
|
20
|
+
COPY load_seeds.rb /var/docker/
|
|
21
|
+
RUN ruby /var/docker/load_seeds.rb
|
|
21
22
|
|
|
22
23
|
RUN rm -r /var/code
|
|
23
24
|
WORKDIR /
|
|
@@ -26,6 +27,6 @@ ENV DATABASE_USERNAME ''
|
|
|
26
27
|
ENV DATABASE_PASSWORD ''
|
|
27
28
|
ENV DATABASE_NAME ''
|
|
28
29
|
|
|
29
|
-
EXPOSE
|
|
30
|
+
EXPOSE 1234
|
|
30
31
|
|
|
31
32
|
CMD /var/docker/startup.bash
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
FROM apollo-rails-app-dependencies
|
|
2
|
+
|
|
3
|
+
ENV DATABASE_USERNAME apollo
|
|
4
|
+
ENV DATABASE_PASSWORD test
|
|
5
|
+
ENV DATABASE_NAME apollo
|
|
6
|
+
ENV DATABASE_TYPE sqlite
|
|
7
|
+
|
|
8
|
+
COPY checkout.bash /var/docker/checkout.bash
|
|
9
|
+
COPY startup.bash /var/docker/startup.bash
|
|
10
|
+
|
|
11
|
+
RUN chmod u+x /var/docker/*
|
|
12
|
+
|
|
13
|
+
RUN /var/docker/checkout.bash github.com saturn brownleej/saturn
|
|
14
|
+
WORKDIR /var/code/saturn
|
|
15
|
+
COPY load_seeds.rb /var/docker/
|
|
16
|
+
RUN ruby /var/docker/load_seeds.rb
|
|
17
|
+
|
|
18
|
+
RUN rm -r /var/code
|
|
19
|
+
WORKDIR /
|
|
20
|
+
|
|
21
|
+
ENV DATABASE_USERNAME ''
|
|
22
|
+
ENV DATABASE_PASSWORD ''
|
|
23
|
+
ENV DATABASE_NAME ''
|
|
24
|
+
|
|
25
|
+
EXPOSE 1234
|
|
26
|
+
|
|
27
|
+
CMD /var/docker/startup.bash
|
|
@@ -7,13 +7,13 @@ ENV DATABASE_TYPE sqlite
|
|
|
7
7
|
|
|
8
8
|
COPY checkout.bash /var/docker/checkout.bash
|
|
9
9
|
COPY startup.bash /var/docker/startup.bash
|
|
10
|
-
COPY hook1.rb /var/docker/hook1.rb
|
|
11
10
|
|
|
12
11
|
RUN chmod u+x /var/docker/*
|
|
13
12
|
|
|
14
13
|
RUN /var/docker/checkout.bash github.com mars brownleej/mars
|
|
15
14
|
WORKDIR /var/code/mars
|
|
16
|
-
|
|
15
|
+
COPY hook1.rb /var/docker/
|
|
16
|
+
RUN ruby /var/docker/hook1.rb
|
|
17
17
|
|
|
18
18
|
RUN rm -r /var/code
|
|
19
19
|
WORKDIR /
|
|
@@ -22,6 +22,6 @@ ENV DATABASE_USERNAME ''
|
|
|
22
22
|
ENV DATABASE_PASSWORD ''
|
|
23
23
|
ENV DATABASE_NAME ''
|
|
24
24
|
|
|
25
|
-
EXPOSE
|
|
25
|
+
EXPOSE 1234
|
|
26
26
|
|
|
27
27
|
CMD /var/docker/startup.bash
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#! /bin/bash
|
|
2
2
|
|
|
3
|
-
cd /var/code
|
|
4
|
-
/var/docker/checkout.bash
|
|
3
|
+
cd /var/code
|
|
4
|
+
/var/docker/checkout.bash
|
|
5
5
|
|
|
6
|
-
/var/docker/update_rails_config.rb
|
|
7
|
-
|
|
6
|
+
ruby /var/docker/update_rails_config.rb
|
|
7
|
+
|
|
8
|
+
ruby /var/docker/prepare_rails_for_launch.rb
|
|
@@ -2,8 +2,8 @@ FROM apollo-generic-app-dependencies
|
|
|
2
2
|
|
|
3
3
|
ENV APP_PORT 8080
|
|
4
4
|
ENV REPOSITORY_HOST github.com
|
|
5
|
-
ENV REPOSITORY_NAME brownleej/mars
|
|
6
5
|
ENV SYSTEM_PREFIX apollo
|
|
6
|
+
ENV REPOSITORY_NAME brownleej/mars
|
|
7
7
|
|
|
8
8
|
RUN rm -r /var/code
|
|
9
9
|
RUN mkdir -p /var/code
|
|
@@ -14,9 +14,10 @@ COPY startup.bash /var/docker/startup.bash
|
|
|
14
14
|
|
|
15
15
|
RUN chmod u+x /var/docker/*
|
|
16
16
|
|
|
17
|
-
RUN /var/docker/checkout.bash
|
|
18
17
|
WORKDIR /var/code
|
|
19
18
|
|
|
19
|
+
RUN /var/docker/checkout.bash
|
|
20
|
+
|
|
20
21
|
EXPOSE 8080
|
|
21
22
|
|
|
22
23
|
CMD /var/docker/startup.bash
|
|
@@ -5,11 +5,11 @@ ENV DATABASE_NAME apollo
|
|
|
5
5
|
ENV DATABASE_PASSWORD test
|
|
6
6
|
ENV DATABASE_USERNAME apollo
|
|
7
7
|
ENV DATABASE_TYPE sqlite
|
|
8
|
+
ENV DATABASE_PORT 1234
|
|
8
9
|
ENV APP_PORT 8080
|
|
9
10
|
ENV REPOSITORY_HOST github.com
|
|
10
|
-
ENV REPOSITORY_NAME brownleej/mars
|
|
11
11
|
ENV SYSTEM_PREFIX apollo
|
|
12
|
-
ENV
|
|
12
|
+
ENV REPOSITORY_NAME brownleej/mars
|
|
13
13
|
|
|
14
14
|
RUN rm -r /var/code
|
|
15
15
|
RUN mkdir -p /var/code
|
|
@@ -17,13 +17,14 @@ RUN mkdir -p /var/code
|
|
|
17
17
|
COPY checkout.bash /var/docker/checkout.bash
|
|
18
18
|
COPY before_startup.bash /var/docker/before_startup.bash
|
|
19
19
|
COPY startup.bash /var/docker/startup.bash
|
|
20
|
-
COPY update_rails_config.rb /var/docker/
|
|
21
|
-
COPY prepare_rails_for_launch.rb /var/docker/
|
|
20
|
+
COPY update_rails_config.rb /var/docker/
|
|
21
|
+
COPY prepare_rails_for_launch.rb /var/docker/
|
|
22
22
|
|
|
23
23
|
RUN chmod u+x /var/docker/*
|
|
24
24
|
|
|
25
|
-
RUN /var/docker/checkout.bash
|
|
26
25
|
WORKDIR /var/code
|
|
26
|
+
|
|
27
|
+
RUN /var/docker/checkout.bash
|
|
27
28
|
RUN bundle install --clean
|
|
28
29
|
|
|
29
30
|
EXPOSE 8080
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
FROM apollo-rails-app-dependencies
|
|
2
|
+
|
|
3
|
+
ENV DATABASE_HOST apollo-database
|
|
4
|
+
ENV DATABASE_NAME apollo
|
|
5
|
+
ENV DATABASE_PASSWORD test
|
|
6
|
+
ENV DATABASE_USERNAME apollo
|
|
7
|
+
ENV DATABASE_TYPE sqlite
|
|
8
|
+
ENV DATABASE_PORT 1234
|
|
9
|
+
ENV APP_PORT 8080
|
|
10
|
+
ENV REPOSITORY_HOST github.com
|
|
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
|
+
COPY update_rails_config.rb /var/docker/
|
|
20
|
+
COPY prepare_rails_for_launch.rb /var/docker/
|
|
21
|
+
COPY build_new_app.rb /var/docker/
|
|
22
|
+
|
|
23
|
+
RUN chmod u+x /var/docker/*
|
|
24
|
+
|
|
25
|
+
WORKDIR /var/code
|
|
26
|
+
|
|
27
|
+
COPY build_new_app.rb /var/docker/
|
|
28
|
+
RUN ruby /var/docker/build_new_app.rb
|
|
29
|
+
|
|
30
|
+
EXPOSE 8080
|
|
31
|
+
|
|
32
|
+
CMD /var/docker/startup.bash
|