stack_car 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/stack_car/cli.rb +14 -5
- data/lib/stack_car/version.rb +1 -1
- data/templates/.env.erb +7 -1
- data/templates/.gitlab-ci.yml.erb +2 -2
- data/templates/Dockerfile.erb +1 -1
- data/templates/README.md +23 -0
- data/templates/database.yml.erb +31 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6733f0600c47bc8fe2254c6cb13f319f95c951e
|
4
|
+
data.tar.gz: 6d6ae0940f19e2f2ad7ca10878f2d359018940d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ce405538df50e3ea51e9adb2cf6664333091ba2a96689c17a09a308ad6d94e6a20531c0384fad527ca17436ab6ff698e6b6f12cbd81b133d6decbdb07de59c8
|
7
|
+
data.tar.gz: 1a3c3b6627138f91875d0d0bd66bb9726e1ed3759e124bb7ee8f49602ae15ec35a64e1df51314557d39530e806b05299beb35d8a7d80dd1d549fa953d504d608
|
data/lib/stack_car/cli.rb
CHANGED
@@ -11,13 +11,14 @@ module StackCar
|
|
11
11
|
end
|
12
12
|
|
13
13
|
method_option :service, default: 'web', type: :string, aliases: '-s'
|
14
|
-
method_option :build, default:
|
14
|
+
method_option :build, default: false, type: :boolean, aliases: '-b'
|
15
15
|
desc "up", "starts docker-compose with rebuild and orphan removal, defaults to web"
|
16
16
|
def up
|
17
17
|
args = ['--remove-orphans']
|
18
18
|
args << '--build' if options[:build]
|
19
19
|
run("rm -rf tmp/pids/server.pid")
|
20
20
|
run("docker-compose up #{args.join(' ')} #{options[:service]}")
|
21
|
+
# TODO run("docker cp #{@project_name}_#{options[:service]}_1:/bundle .")
|
21
22
|
end
|
22
23
|
|
23
24
|
method_option :service, default: '', type: :string, aliases: '-s'
|
@@ -32,7 +33,6 @@ module StackCar
|
|
32
33
|
def build
|
33
34
|
@project_name = File.basename(File.expand_path('.'))
|
34
35
|
run("docker-compose build #{options[:service]}")
|
35
|
-
run("docker cp #{@project_name}_#{options[:service]}_1:/bundle .")
|
36
36
|
end
|
37
37
|
|
38
38
|
|
@@ -114,10 +114,19 @@ module StackCar
|
|
114
114
|
@db_libs = @db_libs.join(' ')
|
115
115
|
|
116
116
|
|
117
|
-
|
117
|
+
['.dockerignore', 'Dockerfile', 'docker-compose.yml', 'docker-compose-prod.yml', '.gitlab-ci.yml', '.env'].each do |template_file|
|
118
|
+
puts template_file
|
118
119
|
template("#{template_file}.erb", template_file)
|
119
|
-
|
120
|
-
|
120
|
+
end
|
121
|
+
template("database.yml.erb", "config/database.yml")
|
122
|
+
empty_directory('bundle')
|
123
|
+
run("touch bundle/.gitkeep && git add bundle/.gitkeep") unless File.exists?('bundle/.gitkeep')
|
124
|
+
insert_into_file "config/environment.rb", "/bundle", :after => "/.bundle"
|
125
|
+
|
126
|
+
prepend_to_file "README.md" do
|
127
|
+
File.read("#{self.class.source_root}/README.md")
|
128
|
+
end
|
129
|
+
|
121
130
|
if options[:deploy] || options[:rancher]
|
122
131
|
directory('ops')
|
123
132
|
['hosts'].each do |template_file|
|
data/lib/stack_car/version.rb
CHANGED
data/templates/.env.erb
CHANGED
@@ -2,12 +2,18 @@
|
|
2
2
|
POSTGRES_DB=<%= @project_name %>
|
3
3
|
POSTGRES_USER=postgres
|
4
4
|
POSTGRES_PASSWORD=DatabaseFTW
|
5
|
+
POSTGRES_HOST=postgres
|
6
|
+
TEST_DB=<%= @project_name %>
|
5
7
|
<% end -%>
|
6
8
|
<% if options[:mysql] -%>
|
7
9
|
MYSQL_DATABASE=<%= @project_name %>
|
10
|
+
MYSQL_USER=root
|
11
|
+
MYSQL_PASSWORD=DatabaseFTW
|
8
12
|
MYSQL_ROOT_PASSWORD=DatabaseFTW
|
13
|
+
MYSQL_HOST=mysql
|
14
|
+
TEST_DB=<%= @project_name %>
|
9
15
|
<% end -%>
|
10
16
|
<% if options[:deploy] || options[:rancher] -%>
|
11
17
|
REGISTRY_HOST=registry.gitlab.com
|
12
|
-
REGISTRY_URI
|
18
|
+
REGISTRY_URI=/TODO/<%= @project_name %>
|
13
19
|
<% end -%>
|
@@ -18,12 +18,12 @@ services:
|
|
18
18
|
|
19
19
|
variables:
|
20
20
|
<% if options[:postgres] -%>
|
21
|
-
POSTGRES_DB: <%= project_name %>
|
21
|
+
POSTGRES_DB: <%= @project_name %>
|
22
22
|
POSTGRES_USER: postgres
|
23
23
|
POSTGRES_PASSWORD: DatabaseFTW
|
24
24
|
<% end -%>
|
25
25
|
<% if options[:MYSQL] -%>
|
26
|
-
MYSQL_DATABASE: <%= project_name %>
|
26
|
+
MYSQL_DATABASE: <%= @project_name %>
|
27
27
|
MYSQL_ROOT_PASSWORD: DatabaseFTW
|
28
28
|
<% end -%>
|
29
29
|
|
data/templates/Dockerfile.erb
CHANGED
@@ -2,7 +2,7 @@ FROM ruby:2.3.0
|
|
2
2
|
|
3
3
|
RUN apt-get update -qq && apt-get install -y build-essential nodejs pv libsasl2-dev <%= @db_libs %> && \
|
4
4
|
apt-get clean && \
|
5
|
-
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
5
|
+
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
6
6
|
|
7
7
|
<% if options[:fcrepo] %>
|
8
8
|
RUN mkdir -p /opt/fits && \
|
data/templates/README.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Docker development setup
|
2
|
+
|
3
|
+
1) Install Docker.app
|
4
|
+
|
5
|
+
2) Get .env file from team member
|
6
|
+
|
7
|
+
3) gem install stack_car
|
8
|
+
|
9
|
+
4) sc up
|
10
|
+
|
11
|
+
``` bash
|
12
|
+
gem install stack_car
|
13
|
+
sc up
|
14
|
+
|
15
|
+
```
|
16
|
+
|
17
|
+
# Deploy a new release
|
18
|
+
|
19
|
+
``` bash
|
20
|
+
sc release {staging | production} # creates and pushes the correct tags
|
21
|
+
sc deploy {staging | production} # deployes those tags to the server
|
22
|
+
```
|
23
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<% if options[:mysql] -%>
|
2
|
+
login: &login
|
3
|
+
adapter: mysql2
|
4
|
+
host: <%%= ENV['MYSQL_HOST'] %>
|
5
|
+
username: <%%= ENV['MYSQL_USER'] %>
|
6
|
+
password: <%%= ENV['MYSQL_PASSWORD'] %>
|
7
|
+
database: <%%= ENV['MYSQL_DATABASE'] %>
|
8
|
+
<% end -%>
|
9
|
+
<% if options[:postgres] -%>
|
10
|
+
login: &login
|
11
|
+
adapter: postgresql
|
12
|
+
host: <%%= ENV['POSTGRES_HOST'] %>
|
13
|
+
username: <%%= ENV['POSTGRES_USER'] %>
|
14
|
+
password: <%%= ENV['POSTGRES_PASSWORD'] %>
|
15
|
+
database: <%%= ENV['POSTGRES_DB'] %>
|
16
|
+
<% end -%>
|
17
|
+
|
18
|
+
|
19
|
+
development:
|
20
|
+
<<: *login
|
21
|
+
|
22
|
+
test:
|
23
|
+
<<: *login
|
24
|
+
database: <%%= ENV['TEST_DB'] %>
|
25
|
+
|
26
|
+
staging:
|
27
|
+
<<: *login
|
28
|
+
|
29
|
+
|
30
|
+
production:
|
31
|
+
<<: *login
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stack_car
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Kaufman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -140,6 +140,8 @@ files:
|
|
140
140
|
- templates/.env.erb
|
141
141
|
- templates/.gitlab-ci.yml.erb
|
142
142
|
- templates/Dockerfile.erb
|
143
|
+
- templates/README.md
|
144
|
+
- templates/database.yml.erb
|
143
145
|
- templates/docker-compose-prod.yml.erb
|
144
146
|
- templates/docker-compose.yml.erb
|
145
147
|
- templates/hosts.erb
|