dockerfile-rails 1.0.2 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/lib/dockerfile-rails/scanner.rb +3 -0
- data/lib/generators/dockerfile_generator.rb +12 -0
- data/lib/generators/templates/Dockerfile.erb +6 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54eedb6e7aa9530a02b253ea1b730b386c2b87a49a00a64611c4c6d96e762505
|
4
|
+
data.tar.gz: f47c1b6851c2a3c3e2bacbb999ad0a7ad43d4b28d64a9cde83c392762d810342
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ed32b4fd6b57906c1e7b2f47270b5edeb96ea710891c9817989c44ea693095e35110b833b4994877e931d3dd0b6ede9b8cac21348120a4ae80b691cfe307c7c
|
7
|
+
data.tar.gz: db989d76c9f7e48553a3047b2096fa38708495c0a854bdd0a9805f92152018660850804464f45e3ceed0d0a6cd43809b64bc54b7606f945b5fe3bd25e2cf3797
|
data/README.md
CHANGED
@@ -19,11 +19,12 @@ General options:
|
|
19
19
|
* `--force` - overwrite existing files
|
20
20
|
* `--ci` - include test gems in deployed image
|
21
21
|
* `--bin-cd` - adjust binstubs to set current working directory
|
22
|
-
* `--no-prepare` - omit `db:prepare`. Useful for cloud platforms with [release](https://devcenter.heroku.com/articles/release-phase) phases
|
23
|
-
* `--platform=s` - specify target platform. See [FROM](https://docs.docker.com/engine/reference/builder/#from) for details
|
22
|
+
* `--no-prepare` - omit `db:prepare`. Useful for cloud platforms with [release](https://devcenter.heroku.com/articles/release-phase) phases
|
23
|
+
* `--platform=s` - specify target platform. See [FROM](https://docs.docker.com/engine/reference/builder/#from) for details
|
24
24
|
* `--cache` - use build caching to speed up builds
|
25
25
|
* `--parallel` - use multi-stage builds to install gems and node modules in parallel
|
26
26
|
* `--compose` - generate a `docker-compose.yml` file
|
27
|
+
* `--label=name:value` - specify docker label. Can be used multiple times. See [LABEL](https://docs.docker.com/engine/reference/builder/#label) for details
|
27
28
|
|
28
29
|
Dependencies:
|
29
30
|
|
@@ -25,6 +25,9 @@ module DockerfileRails
|
|
25
25
|
if File.exist? 'Gemfile.lock'
|
26
26
|
parser = Bundler::LockfileParser.new(Bundler.read_file('Gemfile.lock'))
|
27
27
|
@gemfile += parser.specs.map { |spec, version| spec.name }
|
28
|
+
@git ||= ENV['RAILS_ENV'] != 'test' && parser.specs.any? do |spec|
|
29
|
+
spec.source.instance_of? Bundler::Source::Git
|
30
|
+
end
|
28
31
|
end
|
29
32
|
|
30
33
|
if File.exist? 'Gemfile'
|
@@ -19,15 +19,21 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
19
19
|
'redis' => false,
|
20
20
|
'swap' => nil,
|
21
21
|
'yjit' => false,
|
22
|
+
'label' => {},
|
22
23
|
)
|
23
24
|
|
25
|
+
@@labels = {}
|
26
|
+
|
24
27
|
# load defaults from config file
|
25
28
|
if File.exist? 'config/dockerfile.yml'
|
26
29
|
options = YAML.safe_load_file('config/dockerfile.yml', symbolize_names: true)[:options]
|
30
|
+
|
27
31
|
if options
|
28
32
|
OPTION_DEFAULTS.to_h.each do |option, value|
|
29
33
|
OPTION_DEFAULTS[option] = options[option] if options.include? option
|
30
34
|
end
|
35
|
+
|
36
|
+
@@labels = options[:label].stringify_keys if options.include? :label
|
31
37
|
end
|
32
38
|
end
|
33
39
|
|
@@ -76,9 +82,15 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
76
82
|
class_option :yjit, type: :boolean, default: OPTION_DEFAULTS.yjit,
|
77
83
|
desc: 'enable YJIT optimizing compiler'
|
78
84
|
|
85
|
+
class_option :label, type: :hash, default: {},
|
86
|
+
desc: 'Add Docker label(s)'
|
87
|
+
|
79
88
|
def generate_app
|
80
89
|
source_paths.push File.expand_path('./templates', __dir__)
|
81
90
|
|
91
|
+
# merge options
|
92
|
+
options.label.replace(@@labels.merge(options.label).select {|key, value| value != ''})
|
93
|
+
|
82
94
|
# gather up options for config file
|
83
95
|
@dockerfile_config = OPTION_DEFAULTS.dup.to_h.stringify_keys
|
84
96
|
options.to_h.each do |option, value|
|
@@ -13,6 +13,12 @@ FROM <%= platform %>quay.io/evl.ms/fullstaq-ruby:${RUBY_VERSION}-<%= @options.je
|
|
13
13
|
FROM <%= platform %>ruby:$RUBY_VERSION-slim as base
|
14
14
|
<% end -%>
|
15
15
|
|
16
|
+
<% unless options.label.empty? -%>
|
17
|
+
<% options.label.each do |key, value| -%>
|
18
|
+
LABEL <%= key =~ /^\w[.\w]*$/ ? key : key.inspect %>=<%= value.inspect %>
|
19
|
+
<% end -%>
|
20
|
+
|
21
|
+
<% end -%>
|
16
22
|
# Rails app lives here
|
17
23
|
WORKDIR /rails
|
18
24
|
|