dockerize-stack 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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/lib/dockerize_stack.rb +6 -0
  3. data/lib/rails/dockerize_rails.rb +9 -9
  4. data/lib/react/dockerize_react.rb +42 -0
  5. data/lib/version.rb +1 -1
  6. data/{lib/rails/templates → templates/rails}/config/database-docker.yml.erb +0 -0
  7. data/{lib/rails/templates → templates/rails}/docker-compose.yml.erb +0 -0
  8. data/{lib/rails/templates → templates/rails}/docker/development/Dockerfile.erb +0 -0
  9. data/{lib/rails/templates → templates/rails}/docker/development/entrypoint.sh.erb +0 -0
  10. data/{lib/rails/templates → templates/rails}/docker/kubernetes/scripts/deploy.sh +0 -0
  11. data/{lib/rails/templates → templates/rails}/docker/kubernetes/scripts/get-secrets.sh +0 -0
  12. data/{lib/rails/templates → templates/rails}/docker/kubernetes/scripts/remoteconsole.sh +0 -0
  13. data/{lib/rails/templates → templates/rails}/docker/kubernetes/scripts/set-config-map.sh +0 -0
  14. data/{lib/rails/templates → templates/rails}/docker/kubernetes/scripts/set-secrets.sh +0 -0
  15. data/{lib/rails/templates → templates/rails}/docker/kubernetes/scripts/set-services.sh +0 -0
  16. data/{lib/rails/templates → templates/rails}/docker/kubernetes/scripts/set-workloads.sh +0 -0
  17. data/{lib/rails/templates → templates/rails}/docker/kubernetes/services/cloudsql-proxy.yaml +0 -0
  18. data/{lib/rails/templates → templates/rails}/docker/kubernetes/services/rails-nginx.yaml +0 -0
  19. data/{lib/rails/templates → templates/rails}/docker/kubernetes/workloads/cloudsql-proxy.yaml +0 -0
  20. data/{lib/rails/templates → templates/rails}/docker/kubernetes/workloads/rails-nginx.yaml +0 -0
  21. data/{lib/rails/templates → templates/rails}/docker/production/dockerbuild.sh +0 -0
  22. data/{lib/rails/templates → templates/rails}/docker/production/nginx/Dockerfile +0 -0
  23. data/{lib/rails/templates → templates/rails}/docker/production/nginx/entrypoint.sh +0 -0
  24. data/{lib/rails/templates → templates/rails}/docker/production/nginx/etc/nginx/conf.d/default.conf +0 -0
  25. data/{lib/rails/templates → templates/rails}/docker/production/nginx/etc/nginx/nginx.conf +0 -0
  26. data/{lib/rails/templates → templates/rails}/docker/production/rails/Dockerfile.erb +0 -0
  27. data/{lib/rails/templates → templates/rails}/docker/production/rails/entrypoint.sh +0 -0
  28. data/{lib/rails/templates → templates/rails}/dockerignore.erb +1 -1
  29. data/templates/react/docker/Dockerfile.erb +23 -0
  30. data/templates/react/docker/nginx/conf.d/default.conf.template +44 -0
  31. data/templates/react/dockerignore.erb +27 -0
  32. metadata +28 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d4d2f8c94a2b073521130e3b820f3b7359b5f28
4
- data.tar.gz: bfbe602636915cb7b2737449ee11a1961dca069e
3
+ metadata.gz: cfe36dfc76fc4f7a14199e2497c973eb97b7b47b
4
+ data.tar.gz: fbf1d1c97d0b81fea077fb21082449154f1c46d8
5
5
  SHA512:
6
- metadata.gz: 9fb191ef3ab134fd2f7d620273bfc3ba79def5461f11bea7584110f72f4575605e2743755024fb8b3f0b98ab222ff97470057604565ab8c88b189167ff167c05
7
- data.tar.gz: 3265b9ffbac7b88caaaf5f336a20c0ce49a9774a58e0140d944c27d04d663378d5dd4965ab46216b476481a83675a9886f3b142951b0a88bcc6513174cbd9cea
6
+ metadata.gz: b63a77f1af76cd2286ca344da387021cdb3e460c2c2596793d900298b92c8dee8de1842256a646dcdb956cd4a141dd6d45ec115e8deb3231c383f54aeb87bb46
7
+ data.tar.gz: a0395469e6bb265c984657cf64df357949f323d59e182e69e4db2e4d55b5f7937f607b0d082aa54db82eb32bc7b2465b2f4b2fcf76ce1b4bec45a08d8f7e1432
@@ -1,5 +1,6 @@
1
1
  require 'thor'
2
2
  require 'rails/dockerize_rails'
3
+ require 'react/dockerize_react'
3
4
 
4
5
  module DockerizeStack
5
6
  class Command < Thor
@@ -9,5 +10,10 @@ module DockerizeStack
9
10
  def rails
10
11
  DockerizeRails.new.generate_files
11
12
  end
13
+
14
+ desc 'react', 'generate docker files for create react app'
15
+ def react
16
+ DockerizeReact.new.generate_files
17
+ end
12
18
  end
13
19
  end
@@ -7,7 +7,7 @@ class DockerizeRails < Thor
7
7
  WORKDIR = ".".freeze
8
8
 
9
9
  def self.source_root
10
- File.dirname(__FILE__)
10
+ "#{File.dirname(__FILE__)}/../../templates"
11
11
  end
12
12
 
13
13
  desc 'generate_files', 'generate docker files for rails application'
@@ -23,19 +23,19 @@ class DockerizeRails < Thor
23
23
 
24
24
  no_commands do
25
25
  def render_templates
26
- template 'templates/docker/development/Dockerfile.erb', "#{WORKDIR}/docker/development/Dockerfile"
27
- template 'templates/docker/development/entrypoint.sh.erb', "#{WORKDIR}/docker/development/entrypoint.sh"
28
- template 'templates/docker-compose.yml.erb', "#{WORKDIR}/docker-compose.yml"
29
- template 'templates/config/database-docker.yml.erb', "#{WORKDIR}/config/database-docker.yml"
30
- template 'templates/dockerignore.erb', "#{WORKDIR}/.dockerignore"
26
+ template 'rails/docker/development/Dockerfile.erb', "#{WORKDIR}/docker/development/Dockerfile"
27
+ template 'rails/docker/development/entrypoint.sh.erb', "#{WORKDIR}/docker/development/entrypoint.sh"
28
+ template 'rails/docker-compose.yml.erb', "#{WORKDIR}/docker-compose.yml"
29
+ template 'rails/config/database-docker.yml.erb', "#{WORKDIR}/config/database-docker.yml"
30
+ template 'rails/dockerignore.erb', "#{WORKDIR}/.dockerignore"
31
31
  puts 'Update your database.yml based in database-docker.yml'
32
32
  end
33
33
 
34
34
  def render_production_templates
35
- directory 'templates/docker/production', "#{WORKDIR}/docker/production"
36
- directory 'templates/docker/kubernetes', "#{WORKDIR}/docker/kubernetes"
35
+ directory 'rails/docker/production', "#{WORKDIR}/docker/production"
36
+ directory 'rails/docker/kubernetes', "#{WORKDIR}/docker/kubernetes"
37
37
 
38
- template 'templates/docker/production/rails/Dockerfile.erb', "#{WORKDIR}/docker/production/rails/Dockerfile"
38
+ template 'rails/docker/production/rails/Dockerfile.erb', "#{WORKDIR}/docker/production/rails/Dockerfile"
39
39
  end
40
40
  end
41
41
 
@@ -0,0 +1,42 @@
1
+ require 'thor'
2
+ # Ask variables and render templates
3
+ class DockerizeReact < Thor
4
+ include Thor::Actions
5
+ attr_accessor :nodejs_version
6
+
7
+ WORKDIR = ".".freeze
8
+
9
+ def self.source_root
10
+ "#{File.dirname(__FILE__)}/../../templates"
11
+ end
12
+
13
+ desc 'generate_files', 'generate docker files for react create app'
14
+ def generate_files
15
+ @nodejs_version = ask_with_default('Nodejs Version (default 10):', '10')
16
+
17
+ render_templates
18
+ end
19
+
20
+ no_commands do
21
+ def render_templates
22
+ template 'react/docker/Dockerfile.erb', "#{WORKDIR}/docker/Dockerfile"
23
+ template 'react/dockerignore.erb', "#{WORKDIR}/.dockerignore"
24
+ directory 'react/docker/nginx', "#{WORKDIR}/docker/nginx"
25
+ end
26
+ end
27
+
28
+ private
29
+
30
+ def ask_with_default(question = '', default = '')
31
+ result = ask(question)
32
+ result != '' ? result : default
33
+ end
34
+
35
+ def append_or_create(file_path, file_content)
36
+ if File.exist?(file_path)
37
+ append_to_file file_path, file_content
38
+ else
39
+ create_file file_path, file_content
40
+ end
41
+ end
42
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DockerizeStack
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  # Ignore all files from .gitignore
2
- # cat .gitignore > .dockerignore && cat .gitignore >> .dockerignore
2
+ # echo .git > .dockerignore && cat .gitignore >> .dockerignore
3
3
 
4
4
  /log/*
5
5
  /tmp/*
@@ -0,0 +1,23 @@
1
+ # BUILD STAGE
2
+ FROM node:10-alpine as build
3
+
4
+ #RUN apk -u add git openssh
5
+
6
+ WORKDIR /app
7
+ COPY package.json package-lock.json ./
8
+ RUN npm ci
9
+
10
+ COPY ./src ./src
11
+ COPY ./public ./public
12
+ RUN npm run build
13
+
14
+ # FINAL STAGE
15
+ FROM nginx:1.15
16
+ COPY --from=build /app/build/ /usr/share/nginx/html/
17
+ COPY docker/nginx/conf.d/default.conf.template /etc/nginx/conf.d/default.conf.template
18
+
19
+ ENV PORT=80
20
+ CMD /bin/bash -c "envsubst < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"
21
+
22
+ # docker build -t react-app-production -f docker/Dockerfile .
23
+ # docker run --rm -p 8080:80 react-app-production
@@ -0,0 +1,44 @@
1
+ server {
2
+ listen ${PORT};
3
+ server_name localhost;
4
+
5
+ #charset koi8-r;
6
+ #access_log /var/log/nginx/host.access.log main;
7
+
8
+ location / {
9
+ root /usr/share/nginx/html;
10
+ index index.html index.htm;
11
+ }
12
+
13
+ #error_page 404 /404.html;
14
+
15
+ # redirect server error pages to the static page /50x.html
16
+ #
17
+ error_page 500 502 503 504 /50x.html;
18
+ location = /50x.html {
19
+ root /usr/share/nginx/html;
20
+ }
21
+
22
+ # proxy the PHP scripts to Apache listening on 127.0.0.1:80
23
+ #
24
+ #location ~ \.php$ {
25
+ # proxy_pass http://127.0.0.1;
26
+ #}
27
+
28
+ # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
29
+ #
30
+ #location ~ \.php$ {
31
+ # root html;
32
+ # fastcgi_pass 127.0.0.1:9000;
33
+ # fastcgi_index index.php;
34
+ # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
35
+ # include fastcgi_params;
36
+ #}
37
+
38
+ # deny access to .htaccess files, if Apache's document root
39
+ # concurs with nginx's one
40
+ #
41
+ #location ~ /\.ht {
42
+ # deny all;
43
+ #}
44
+ }
@@ -0,0 +1,27 @@
1
+ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+ # echo .git > .dockerignore && cat .gitignore >> .dockerignore
3
+
4
+ .git
5
+ Dockerfile
6
+
7
+ # dependencies
8
+ /node_modules
9
+ /.pnp
10
+ .pnp.js
11
+
12
+ # testing
13
+ /coverage
14
+
15
+ # production
16
+ /build
17
+
18
+ # misc
19
+ .DS_Store
20
+ .env.local
21
+ .env.development.local
22
+ .env.test.local
23
+ .env.production.local
24
+
25
+ npm-debug.log*
26
+ yarn-debug.log*
27
+ yarn-error.log*
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockerize-stack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Savignano
@@ -36,30 +36,34 @@ files:
36
36
  - bin/dockerize-stack
37
37
  - lib/dockerize_stack.rb
38
38
  - lib/rails/dockerize_rails.rb
39
- - lib/rails/templates/config/database-docker.yml.erb
40
- - lib/rails/templates/docker-compose.yml.erb
41
- - lib/rails/templates/docker/development/Dockerfile.erb
42
- - lib/rails/templates/docker/development/entrypoint.sh.erb
43
- - lib/rails/templates/docker/kubernetes/scripts/deploy.sh
44
- - lib/rails/templates/docker/kubernetes/scripts/get-secrets.sh
45
- - lib/rails/templates/docker/kubernetes/scripts/remoteconsole.sh
46
- - lib/rails/templates/docker/kubernetes/scripts/set-config-map.sh
47
- - lib/rails/templates/docker/kubernetes/scripts/set-secrets.sh
48
- - lib/rails/templates/docker/kubernetes/scripts/set-services.sh
49
- - lib/rails/templates/docker/kubernetes/scripts/set-workloads.sh
50
- - lib/rails/templates/docker/kubernetes/services/cloudsql-proxy.yaml
51
- - lib/rails/templates/docker/kubernetes/services/rails-nginx.yaml
52
- - lib/rails/templates/docker/kubernetes/workloads/cloudsql-proxy.yaml
53
- - lib/rails/templates/docker/kubernetes/workloads/rails-nginx.yaml
54
- - lib/rails/templates/docker/production/dockerbuild.sh
55
- - lib/rails/templates/docker/production/nginx/Dockerfile
56
- - lib/rails/templates/docker/production/nginx/entrypoint.sh
57
- - lib/rails/templates/docker/production/nginx/etc/nginx/conf.d/default.conf
58
- - lib/rails/templates/docker/production/nginx/etc/nginx/nginx.conf
59
- - lib/rails/templates/docker/production/rails/Dockerfile.erb
60
- - lib/rails/templates/docker/production/rails/entrypoint.sh
61
- - lib/rails/templates/dockerignore.erb
39
+ - lib/react/dockerize_react.rb
62
40
  - lib/version.rb
41
+ - templates/rails/config/database-docker.yml.erb
42
+ - templates/rails/docker-compose.yml.erb
43
+ - templates/rails/docker/development/Dockerfile.erb
44
+ - templates/rails/docker/development/entrypoint.sh.erb
45
+ - templates/rails/docker/kubernetes/scripts/deploy.sh
46
+ - templates/rails/docker/kubernetes/scripts/get-secrets.sh
47
+ - templates/rails/docker/kubernetes/scripts/remoteconsole.sh
48
+ - templates/rails/docker/kubernetes/scripts/set-config-map.sh
49
+ - templates/rails/docker/kubernetes/scripts/set-secrets.sh
50
+ - templates/rails/docker/kubernetes/scripts/set-services.sh
51
+ - templates/rails/docker/kubernetes/scripts/set-workloads.sh
52
+ - templates/rails/docker/kubernetes/services/cloudsql-proxy.yaml
53
+ - templates/rails/docker/kubernetes/services/rails-nginx.yaml
54
+ - templates/rails/docker/kubernetes/workloads/cloudsql-proxy.yaml
55
+ - templates/rails/docker/kubernetes/workloads/rails-nginx.yaml
56
+ - templates/rails/docker/production/dockerbuild.sh
57
+ - templates/rails/docker/production/nginx/Dockerfile
58
+ - templates/rails/docker/production/nginx/entrypoint.sh
59
+ - templates/rails/docker/production/nginx/etc/nginx/conf.d/default.conf
60
+ - templates/rails/docker/production/nginx/etc/nginx/nginx.conf
61
+ - templates/rails/docker/production/rails/Dockerfile.erb
62
+ - templates/rails/docker/production/rails/entrypoint.sh
63
+ - templates/rails/dockerignore.erb
64
+ - templates/react/docker/Dockerfile.erb
65
+ - templates/react/docker/nginx/conf.d/default.conf.template
66
+ - templates/react/dockerignore.erb
63
67
  homepage: https://github.com/MiguelSavignano/dockerize-stack
64
68
  licenses:
65
69
  - MIT