dockerfile-rails 1.6.8 → 1.6.10

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a58920acbac3b3f5f952ae58113b9270f1b6817d8f61faeb357de48aad49b7ba
4
- data.tar.gz: 89b5140bc2f150a5eda54229efcc984ecac8a3466ead51ac8fb1e57f5f2b8278
3
+ metadata.gz: d778306a922152b1b8fa89406d1afcb45d977c0d5b9bb468340464dbfa9dddbe
4
+ data.tar.gz: e9bf92490211e18e117ccc5164761e2fa5ff3d32d886762e3bbb95d7e506b37c
5
5
  SHA512:
6
- metadata.gz: 77b12d5c786818fe06fcc7e931fd525d5737b4e7cfcf8a28c30807e7492bcf2a8c71cc30aeeacae1eed0cc148d8b75cee9c8e5ba73748e2fa797bd6075389da0
7
- data.tar.gz: 868466c5f0b09071614d0530ea529e51906967e9976832596b35bd7d130a2e7ffc57e872df6db3bd0921b855f68e886f91027555840d295c3b3aedabf01cb850
6
+ metadata.gz: e5be4fcf0d992d8c3fedf4fa3ccc216fddf02c132eeae4313498a11bdee40ea67f2680d7933339ad36ffc339294501cbc06b9377d70aee544c6c37e112d1bcce
7
+ data.tar.gz: f23457093b3fd65b398770231cfc805efef41acf90419a742e7ac1e9d804e6bbddb3c1943cec9b47f8fd11a56833a31367d72dcd834595a6f15bd6b671d2bc09
data/README.md CHANGED
@@ -34,7 +34,7 @@ different contents. If both are specified, `--force` takes precedence.
34
34
 
35
35
  ### Runtime Optimizations:
36
36
 
37
- * `--alpine` - use [alpine](https://www.alpinelinux.org/) as base image
37
+ * `--alpine` - use [alpine](https://www.alpinelinux.org/) as base image (requires [Alpine <= 3.18 OR Rails >= 8.0](https://github.com/sparklemotion/sqlite3-ruby/issues/434))
38
38
  * `--fullstaq` - use [fullstaq](https://fullstaqruby.org/) [images](https://github.com/evilmartians/fullstaq-ruby-docker) on [quay.io](https://quay.io/repository/evl.ms/fullstaq-ruby?tab=tags&tag=latest)
39
39
  * `--jemalloc` - use [jemalloc](https://jemalloc.net/) memory allocator
40
40
  * `--swap=n` - allocate swap space. See [falloc options](https://man7.org/linux/man-pages/man1/fallocate.1.html#OPTIONS) for suffixes
data/Rakefile CHANGED
@@ -30,7 +30,7 @@ namespace :test do
30
30
  sh "bundle config set --local local.dockerfile-rails #{__dir__}"
31
31
  sh "bundle add dockerfile-rails --group development " +
32
32
  "--git https://github.com/rubys/dockerfile-rails.git"
33
- sh "bin/rails generate dockerfile"
33
+ sh "bin/rails generate dockerfile --force"
34
34
  cp "#{__dir__}/test/docker-entrypoint", "bin"
35
35
  IO.write "config/routes.rb",
36
36
  'Rails.application.routes.draw {get "/up", to: proc {[200, {}, ["ok"]]}}'
@@ -45,13 +45,13 @@ namespace :test do
45
45
  task :alpine do
46
46
  rm_rf "test/tmp/system_test"
47
47
  Dir.chdir "test/tmp" do
48
- sh "rails new system_test --javascript esbuild"
48
+ sh "rails new system_test --javascript esbuild --main"
49
49
  Dir.chdir "system_test"
50
50
  sh "bundle config disable_local_branch_check true"
51
51
  sh "bundle config set --local local.dockerfile-rails #{__dir__}"
52
52
  sh "bundle add dockerfile-rails --group development " +
53
53
  "--git https://github.com/rubys/dockerfile-rails.git"
54
- sh "bin/rails generate dockerfile --alpine"
54
+ sh "bin/rails generate dockerfile --alpine --force"
55
55
  cp "#{__dir__}/test/docker-entrypoint", "bin"
56
56
  IO.write "config/routes.rb",
57
57
  'Rails.application.routes.draw {get "/up", to: proc {[200, {}, ["ok"]]}}'
@@ -364,6 +364,30 @@ class DockerfileGenerator < Rails::Generators::Base
364
364
  elsif File.exist? "config/dockerfile.yml"
365
365
  remove_file "config/dockerfile.yml"
366
366
  end
367
+
368
+ # check Dockerfile for common errors: missing packages, mismatched Ruby version
369
+ if options.skip? && File.exist?("Dockerfile")
370
+ message = nil
371
+ shell = Thor::Base.shell.new
372
+
373
+ dockerfile = IO.read("Dockerfile")
374
+ missing = Set.new(base_packages + build_packages) -
375
+ Set.new(dockerfile.scan(/[-\w]+/))
376
+
377
+ unless missing.empty?
378
+ message = "The following packages are missing from the Dockerfile: #{missing.to_a.join(", ")}"
379
+ STDERR.puts "\n" + shell.set_color(message, Thor::Shell::Color::RED, Thor::Shell::Color::BOLD)
380
+ end
381
+
382
+ ruby_version = dockerfile.match(/ARG RUBY_VERSION=(\d+\.\d+\.\d+)/)[1]
383
+
384
+ if ruby_version && ruby_version != RUBY_VERSION
385
+ message = "The Ruby version in the Dockerfile (#{ruby_version}) does not match the Ruby version of the Rails app (#{RUBY_VERSION})"
386
+ STDERR.puts "\n" + shell.set_color(message, Thor::Shell::Color::RED, Thor::Shell::Color::BOLD)
387
+ end
388
+
389
+ exit 42 if message
390
+ end
367
391
  end
368
392
 
369
393
  private
@@ -87,16 +87,10 @@ ENV <%= build_env.join(" \\\n ") %>
87
87
  <% end -%>
88
88
  # Install application gems
89
89
  COPY<% if options.link? %> --link<% end %> Gemfile Gemfile.lock <% if references_ruby_version_file? %>.ruby-version <% end %>./
90
- <% if options.alpine? and deploy_packages.include? 'sqlite-libs' -%>
91
- # Workaround sqlite/alpine issue: https://github.com/sparklemotion/sqlite3-ruby/issues/434
92
- RUN bundle config force_ruby_platform true && \
93
- bundle config set frozen false && \
94
- bundle lock --add-platform ruby
95
- <% end -%>
96
90
  <% if options.cache? -%>
97
91
  RUN --mount=type=cache,id=bld-gem-cache,sharing=locked,target=/srv/vendor \
98
92
  <% if private_gemserver_env_variable_name -%>
99
- --mount=type=secret,id=gemserver_credentials,dst=/kaniko/gemserver_credentials \
93
+ --mount=type=secret,id=gemserver_credentials,target=/kaniko/gemserver_credentials \
100
94
  <%= private_gemserver_env_variable_name %>="$(cat /kaniko/gemserver_credentials)" && \
101
95
  export <%= private_gemserver_env_variable_name %> && \
102
96
  <% end -%>
@@ -113,7 +107,7 @@ RUN --mount=type=cache,id=bld-gem-cache,sharing=locked,target=/srv/vendor \
113
107
 
114
108
  <% else -%>
115
109
  <% if private_gemserver_env_variable_name -%>
116
- RUN --mount=type=secret,id=gemserver_credentials,dst=/kaniko/gemserver_credentials \
110
+ RUN --mount=type=secret,id=gemserver_credentials,target=/kaniko/gemserver_credentials \
117
111
  <%= private_gemserver_env_variable_name %>="$(cat /kaniko/gemserver_credentials)" && \
118
112
  export <%= private_gemserver_env_variable_name %> && \
119
113
  bundle install<% if depend_on_bootsnap? && options.precompile != "defer" -%> && \
@@ -98,6 +98,10 @@ services:
98
98
  command: bundle exec sidekiq
99
99
  <% else -%>
100
100
  command: bundle exec rake solid_queue:start
101
+ <% end -%>
102
+ <% if private_gemserver_env_variable_name -%>
103
+ secrets:
104
+ - gemserver_credentials
101
105
  <% end -%>
102
106
  environment:
103
107
  - RAILS_MASTER_KEY=$RAILS_MASTER_KEY
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockerfile-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.8
4
+ version: 1.6.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Ruby
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-09 00:00:00.000000000 Z
11
+ date: 2024-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -74,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  requirements: []
77
- rubygems_version: 3.5.4
77
+ rubygems_version: 3.5.9
78
78
  signing_key:
79
79
  specification_version: 4
80
80
  summary: Dockerfile generator for Rails