dockerfile-rails 1.6.16 → 1.6.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +3 -0
- data/lib/dockerfile-rails/scanner.rb +12 -0
- data/lib/generators/dockerfile_generator.rb +11 -2
- data/lib/generators/templates/Dockerfile.erb +3 -0
- metadata +3 -4
- data/lib/fly_replay.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e637270c44cb54868cd8947bc9347000e60ae76395d5f2033ca61f67f8266bac
|
4
|
+
data.tar.gz: afe0959d1da483ca595e1b13bf5f7568bf470aa1b6abaf8e3e604b21cebcf793
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 11c0b726982acebf8d3943aaf2c498e9ecfb4960f943f3ef094881390601c9c6bdfb1d2cb69a45fbf4b0d481284d3cefc76986b3187f7b6d09a53434cd26f373
|
7
|
+
data.tar.gz: 5c971c5b102ec993900e0bb75ccb52e17335499649ae05c23c2d6302f12e8514e200071cdd19015af5f0e28d65e2405f77799bcb7089fdd2ae7de0c38ade0f9d
|
data/Rakefile
CHANGED
@@ -14,6 +14,12 @@ module DockerfileRails
|
|
14
14
|
@git ||= ENV["RAILS_ENV"] != "test" && parser.specs.any? do |spec|
|
15
15
|
spec.source.instance_of? Bundler::Source::Git
|
16
16
|
end
|
17
|
+
|
18
|
+
# determine if the application is affected by the net-pop bug
|
19
|
+
# https://github.com/ruby/ruby/pull/11006#issuecomment-2176562332
|
20
|
+
if RUBY_VERSION == "3.3.3" && @gemfile.include?("net-pop")
|
21
|
+
@netpopbug = parser.specs.find { |spec| spec.name == "net-pop" }.dependencies.empty?
|
22
|
+
end
|
17
23
|
end
|
18
24
|
|
19
25
|
if File.exist? "Gemfile"
|
@@ -86,5 +92,11 @@ module DockerfileRails
|
|
86
92
|
def using_trilogy?
|
87
93
|
@gemfile.include?("trilogy") || @gemfile.include?("activerecord-trilogy-adapter")
|
88
94
|
end
|
95
|
+
|
96
|
+
### patches ###
|
97
|
+
if RUBY_VERSION == "3.3.3"
|
98
|
+
Bundler::LockfileParser.new(Bundler.read_file("Gemfile.lock"))
|
99
|
+
|
100
|
+
end
|
89
101
|
end
|
90
102
|
end
|
@@ -402,6 +402,15 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
402
402
|
STDERR.puts "\n" + shell.set_color(message, Thor::Shell::Color::RED, Thor::Shell::Color::BOLD)
|
403
403
|
end
|
404
404
|
|
405
|
+
if @netpopbug && !dockerfile.include?("net-pop")
|
406
|
+
message = "Ruby 3.3.3 net-pop bug detected."
|
407
|
+
STDERR.puts "\n" + shell.set_color(message, Thor::Shell::Color::RED, Thor::Shell::Color::BOLD)
|
408
|
+
STDERR.puts "Please see https://github.com/ruby/ruby/pull/11006"
|
409
|
+
STDERR.puts "Change your Ruby version, or run `bin/rails generate dockerfile`,"
|
410
|
+
STDERR.puts "or add the following to your Dockerfile:"
|
411
|
+
STDERR.puts 'RUN sed -i "/net-pop (0.1.2)/a\ net-protocol" Gemfile.lock'
|
412
|
+
end
|
413
|
+
|
405
414
|
if (options.sqlite3? || @sqlite3) && !dockerfile.include?("DATABASE_URL") && File.exist?("fly.toml")
|
406
415
|
toml = IO.read("fly.toml")
|
407
416
|
if !toml.include?("[[env]]")
|
@@ -1394,10 +1403,10 @@ private
|
|
1394
1403
|
"kb" => 1000,
|
1395
1404
|
"mib" => 1048576,
|
1396
1405
|
"m" => 1048576,
|
1397
|
-
"mb" =>
|
1406
|
+
"mb" => 1000000,
|
1398
1407
|
"gib" => 1073741824,
|
1399
1408
|
"g" => 1073741824,
|
1400
|
-
"gb" =>
|
1409
|
+
"gb" => 1000000000,
|
1401
1410
|
}
|
1402
1411
|
|
1403
1412
|
pattern = Regexp.new("^(\\d+)(#{suffixes.keys.join('|')})?$", "i")
|
@@ -87,6 +87,9 @@ 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 @netpopbug && Rails.env != "test" -%>
|
91
|
+
RUN sed -i "/net-pop (0.1.2)/a\ net-protocol" Gemfile.lock
|
92
|
+
<% end -%>
|
90
93
|
<% if options.cache? -%>
|
91
94
|
RUN --mount=type=cache,id=bld-gem-cache,sharing=locked,target=/srv/vendor \
|
92
95
|
<% if private_gemserver_env_variable_name -%>
|
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.
|
4
|
+
version: 1.6.17
|
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-06-
|
11
|
+
date: 2024-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -37,7 +37,6 @@ files:
|
|
37
37
|
- Rakefile
|
38
38
|
- lib/dockerfile-rails.rb
|
39
39
|
- lib/dockerfile-rails/scanner.rb
|
40
|
-
- lib/fly_replay.rb
|
41
40
|
- lib/generators/dockerfile_generator.rb
|
42
41
|
- lib/generators/templates/Dockerfile.erb
|
43
42
|
- lib/generators/templates/_apt_install.erb
|
@@ -75,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
74
|
- !ruby/object:Gem::Version
|
76
75
|
version: '0'
|
77
76
|
requirements: []
|
78
|
-
rubygems_version: 3.5.
|
77
|
+
rubygems_version: 3.5.10
|
79
78
|
signing_key:
|
80
79
|
specification_version: 4
|
81
80
|
summary: Dockerfile generator for Rails
|
data/lib/fly_replay.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Fly
|
4
|
-
class FlyReplay
|
5
|
-
def initialize(app)
|
6
|
-
@app = app
|
7
|
-
end
|
8
|
-
|
9
|
-
def call(env)
|
10
|
-
# replay /prometheus/* to the prom proxy in bubblegum
|
11
|
-
if env["PATH_INFO"].starts_with?("/prometheus")
|
12
|
-
return [307, { "Fly-Replay" => "app=flyio-bubblegum-api" }, []]
|
13
|
-
end
|
14
|
-
|
15
|
-
# replay /debug to the debug app. unsure if this is actually used
|
16
|
-
if env["PATH_INFO"].starts_with?("/debug")
|
17
|
-
return [307, { "Fly-Replay" => "app=debug" }, []]
|
18
|
-
end
|
19
|
-
|
20
|
-
@status, @headers, @response = @app.call(env)
|
21
|
-
|
22
|
-
context = OpenTelemetry::Trace.current_span.context
|
23
|
-
@headers["fly-trace-id"] = context.trace_id.unpack1("H*")
|
24
|
-
@headers["fly-span-id"] = context.span_id.unpack1("H*")
|
25
|
-
|
26
|
-
[@status, @headers, @response]
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|