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.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.rdoc_options +8 -2
  4. data/.rspec +1 -0
  5. data/.travis.yml +17 -1
  6. data/Gemfile.lock +18 -2
  7. data/README.md +28 -10
  8. data/bin/ruby_yacht +5 -0
  9. data/doc/TODO.md +1 -20
  10. data/doc/configuration.md +104 -21
  11. data/doc/configuration_sample.rb +19 -8
  12. data/doc/contributing.md +28 -5
  13. data/doc/plugins.md +105 -45
  14. data/lib/ruby_yacht/dsl/app.rb +14 -18
  15. data/lib/ruby_yacht/dsl/configuration.rb +51 -32
  16. data/lib/ruby_yacht/dsl/database.rb +24 -8
  17. data/lib/ruby_yacht/dsl/dsl.rb +32 -4
  18. data/lib/ruby_yacht/dsl/hook.rb +182 -48
  19. data/lib/ruby_yacht/dsl/project.rb +20 -14
  20. data/lib/ruby_yacht/dsl/server_type.rb +14 -31
  21. data/lib/ruby_yacht/dsl/web_server.rb +87 -0
  22. data/lib/ruby_yacht/dsl.rb +1 -0
  23. data/lib/ruby_yacht/images/app/Dockerfile.erb +17 -6
  24. data/lib/ruby_yacht/images/app/before_startup.bash.erb +5 -3
  25. data/lib/ruby_yacht/images/app/startup.bash.erb +5 -2
  26. data/lib/ruby_yacht/images/app-dependencies/Dockerfile.erb +7 -11
  27. data/lib/ruby_yacht/images/database/Dockerfile.erb +7 -18
  28. data/lib/ruby_yacht/images/database/startup.bash.erb +1 -1
  29. data/lib/ruby_yacht/images/web/Dockerfile.erb +25 -19
  30. data/lib/ruby_yacht/plugins/mysql.rb +18 -8
  31. data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/add_app.rb +5 -5
  32. data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/add_project.rb +3 -3
  33. data/lib/ruby_yacht/plugins/nginx.rb +28 -0
  34. data/lib/ruby_yacht/plugins/rails/scripts/build_new_app.rb +10 -0
  35. data/lib/ruby_yacht/plugins/rails/scripts/update_rails_config.rb +6 -1
  36. data/lib/ruby_yacht/plugins/rails.rb +34 -19
  37. data/lib/ruby_yacht/plugins.rb +2 -1
  38. data/lib/ruby_yacht/runner/build_images.rb +87 -73
  39. data/lib/ruby_yacht/runner/checkout.rb +1 -1
  40. data/lib/ruby_yacht/runner/command.rb +13 -1
  41. data/lib/ruby_yacht/runner/create_new_project.rb +91 -0
  42. data/lib/ruby_yacht/runner/help.rb +1 -1
  43. data/lib/ruby_yacht/runner/run_containers.rb +17 -21
  44. data/lib/ruby_yacht/runner/runner.rb +27 -2
  45. data/lib/ruby_yacht/runner/services.rb +15 -10
  46. data/lib/ruby_yacht/runner/shell.rb +1 -1
  47. data/lib/ruby_yacht/runner/update_hosts.rb +16 -11
  48. data/lib/ruby_yacht/runner.rb +1 -0
  49. data/log/.gitkeep +0 -0
  50. data/ruby_yacht.gemspec +4 -2
  51. data/spec/docker/Dockerfile +19 -3
  52. data/spec/docker/install_gems.bash +5 -0
  53. data/spec/docker/run.bash +44 -0
  54. data/spec/docker/startup.bash +10 -0
  55. data/spec/dsl/app_spec.rb +66 -38
  56. data/spec/dsl/configuration_spec.rb +236 -30
  57. data/spec/dsl/database_spec.rb +103 -4
  58. data/spec/dsl/dsl_spec.rb +46 -3
  59. data/spec/dsl/hook_spec.rb +278 -57
  60. data/spec/dsl/project_spec.rb +75 -45
  61. data/spec/dsl/server_type_spec.rb +52 -12
  62. data/spec/dsl/web_server_spec.rb +160 -0
  63. data/spec/fixtures/apollo-new-project-config +20 -0
  64. data/spec/fixtures/app-dependencies-dockerfile-generic +4 -7
  65. data/spec/fixtures/app-dependencies-dockerfile-generic-with-library-install +6 -10
  66. data/spec/fixtures/app-dependencies-dockerfile-rails +9 -11
  67. data/spec/fixtures/app-dependencies-dockerfile-with-no-repository +20 -0
  68. data/spec/fixtures/database-dockerfile +1 -1
  69. data/spec/fixtures/database-dockerfile-mysql +3 -3
  70. data/spec/fixtures/database-dockerfile-rails +5 -4
  71. data/spec/fixtures/database-dockerfile-rails-with-no-repository +27 -0
  72. data/spec/fixtures/database-dockerfile-with-seed-hooks +3 -3
  73. data/spec/fixtures/database-startup-mysql +2 -1
  74. data/spec/fixtures/mars-before-startup +2 -2
  75. data/spec/fixtures/mars-before-startup-rails +5 -4
  76. data/spec/fixtures/mars-before-startup-with-before-startup-hooks +5 -4
  77. data/spec/fixtures/mars-before-startup-with-custom-file-copy +3 -3
  78. data/spec/fixtures/mars-before-startup-with-no-repository +3 -0
  79. data/spec/fixtures/mars-dockerfile +3 -2
  80. data/spec/fixtures/mars-dockerfile-rails +6 -5
  81. data/spec/fixtures/mars-dockerfile-rails-with-no-repository +32 -0
  82. data/spec/fixtures/mars-dockerfile-with-after-checkout-hooks +5 -4
  83. data/spec/fixtures/mars-dockerfile-with-before-startup-hooks +5 -4
  84. data/spec/fixtures/mars-dockerfile-with-custom-file-copy +4 -3
  85. data/spec/fixtures/mars-dockerfile-with-local-database +4 -2
  86. data/spec/fixtures/mars-dockerfile-with-no-repository +22 -0
  87. data/spec/fixtures/mars-dockerfile-with-remote-database +4 -2
  88. data/spec/fixtures/mars-startup +2 -2
  89. data/spec/fixtures/mars-startup-rails +2 -2
  90. data/spec/fixtures/mars-startup-rails-with-no-repository +5 -0
  91. data/spec/fixtures/mars-startup-with-no-repository +4 -0
  92. data/spec/fixtures/web-dockerfile +18 -11
  93. data/spec/fixtures/web-dockerfile-jupiter +28 -0
  94. data/spec/fixtures/web-dockerfile-nginx +38 -0
  95. data/spec/fixtures/web-dockerfile-with-eponymous-app +16 -10
  96. data/spec/fixtures/web-dockerfile-with-primary-app +16 -10
  97. data/spec/integration/build_images_spec.rb +210 -0
  98. data/spec/integration/build_spec.rb +23 -0
  99. data/spec/integration/checkout_spec.rb +94 -0
  100. data/spec/integration/create_new_project_spec.rb +50 -0
  101. data/spec/integration/implode_spec.rb +20 -0
  102. data/spec/integration/run.rb +93 -0
  103. data/spec/integration/run_containers_spec.rb +279 -0
  104. data/spec/integration/services_spec.rb +99 -0
  105. data/spec/integration/shell_spec.rb +31 -0
  106. data/spec/integration/update_hosts_spec.rb +35 -0
  107. data/spec/plugins/mysql_spec.rb +18 -1
  108. data/spec/plugins/nginx_spec.rb +66 -0
  109. data/spec/plugins/rails_spec.rb +61 -89
  110. data/spec/runner/build_images_spec.rb +111 -58
  111. data/spec/runner/command_spec.rb +55 -3
  112. data/spec/runner/create_new_project_spec.rb +93 -0
  113. data/spec/runner/help_spec.rb +5 -1
  114. data/spec/runner/run_containers_spec.rb +22 -10
  115. data/spec/runner/runner_spec.rb +31 -4
  116. data/spec/runner/services_spec.rb +32 -4
  117. data/spec/runner/update_hosts_spec.rb +2 -1
  118. data/spec/spec_helper.rb +16 -1
  119. data/spec/support/integration_helpers.rb +76 -0
  120. data/spec/support/test_project.rb +15 -3
  121. metadata +97 -14
  122. data/spec/docker/build.bash +0 -10
  123. data/spec/fixtures/deploy-dockerfile +0 -2
  124. data/spec/fixtures/multi-project-web-dockerfile +0 -25
  125. /data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/app_config.erb +0 -0
  126. /data/lib/ruby_yacht/{images/web → plugins/nginx/scripts}/index.html.erb +0 -0
  127. /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
- environment_variable :app, 'SECRET_KEY' do
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 :project1, :sqlite do
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 :test1, :app_type_test do
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 :test1, :generic do
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 touch /var/docker/.keep
14
+ RUN mkdir -p /var/code/
15
15
 
16
- RUN chmod u+x /var/docker/*
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
- RUN apt-get update && apt-get upgrade -y
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 touch /var/docker/.keep
14
+ RUN mkdir -p /var/code/
15
15
 
16
- COPY hook2.rb /var/docker/hook2.rb
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
- RUN /var/docker/hook2.rb
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 touch /var/docker/.keep
18
+ RUN mkdir -p /var/code/
18
19
 
19
- COPY install_gems.rb /var/docker/install_gems.rb
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
- RUN /var/docker/install_gems.rb
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
- RUN /var/docker/install_gems.rb
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 /
@@ -20,6 +20,6 @@ ENV DATABASE_USERNAME ''
20
20
  ENV DATABASE_PASSWORD ''
21
21
  ENV DATABASE_NAME ''
22
22
 
23
- EXPOSE 3306
23
+ EXPOSE 1234
24
24
 
25
25
  CMD /var/docker/startup.bash
@@ -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
- RUN /var/docker/setup.bash
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
- RUN /var/docker/load_seeds.rb
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
- RUN /var/docker/load_seeds.rb
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 3306
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
- RUN /var/docker/hook1.rb
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 3306
25
+ EXPOSE 1234
26
26
 
27
27
  CMD /var/docker/startup.bash
@@ -1,3 +1,4 @@
1
1
  #! /bin/bash
2
2
 
3
- mysqld_safe --bind-address=0.0.0.0;
3
+ export MYSQL_PORT="3306"
4
+ mysqld_safe --bind-address=0.0.0.0 --port=$MYSQL_PORT
@@ -1,4 +1,4 @@
1
1
  #! /bin/bash
2
2
 
3
- cd /var/code;
4
- /var/docker/checkout.bash;
3
+ cd /var/code
4
+ /var/docker/checkout.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
- /var/docker/prepare_rails_for_launch.rb;
6
+ ruby /var/docker/update_rails_config.rb
7
+
8
+ ruby /var/docker/prepare_rails_for_launch.rb
@@ -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/hook1.rb;
7
- /var/docker/hook2.rb;
6
+ ruby /var/docker/hook1.rb
7
+
8
+ ruby /var/docker/hook2.rb
@@ -1,6 +1,6 @@
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
- cp /var/docker/hook1.rb /var/code/scripts/hook1.rb;
6
+ cp /var/docker/hook1.rb /var/code/scripts/hook1.rb
@@ -0,0 +1,3 @@
1
+ #! /bin/bash
2
+
3
+ cd /var/code
@@ -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 SECRET_KEY_BASE abc
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/update_rails_config.rb
21
- COPY prepare_rails_for_launch.rb /var/docker/prepare_rails_for_launch.rb
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