dockerfile-rails 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0227d5ff2b7d0a0d42d48ba7e3be63280ea528f3f80417a6419dfebbec44b3a7
4
- data.tar.gz: ee9b4b14b72b85193a6e7b54862f6643b02896c5ff4636b294a845e7ae6a1b35
3
+ metadata.gz: ca1f4e5fe001307e03c7a37ad194cc643b0130d709a3974c453dc036857eb4a8
4
+ data.tar.gz: 81508d5aa170bfc00062ce1fb52ca54237def089702937b13ce7ae56e95f99a0
5
5
  SHA512:
6
- metadata.gz: 2e9f99b443c3cab5dca0d5800eb996b7f727ef0dbfcf44ad0e1586edf1ed9691b3cafbf1c608f207a55c63fd9d768e2796c4d3644c3e6715214ca5aa159ae122
7
- data.tar.gz: 6980319c05859df14c35649159c874271162ff83ac1c2918e4c959c93f6f39b29f5a4002cbf9305f82404ae8b5d00ee4d0e401e420c37a86abb6b0c8362adcf8
6
+ metadata.gz: e2f75d96502988be41600c72ee59a6bfd32d583fc8e0d1c9ea59c3a4c478bcefb484510b4db03fd8c28730d356944f62678244ceb5ac8d4bd4769de166760700
7
+ data.tar.gz: 9f75d764d9ad5badedfd6c935796db84e7988441a2c87fc12eab78c1a2cbae67eaeffed1f2f14b2a28c89df0f6cb13222c9653c983ef85540cc2acb8986568f0
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
 
@@ -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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockerfile-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ruby