dockerfile-rails 1.6.14 → 1.6.15
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 +4 -4
- data/lib/fly_replay.rb +29 -0
- data/lib/generators/dockerfile_generator.rb +58 -3
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 408907e489bd861b56cdbf73efa0213276ffee3cd1edaab526e3e978325d6bb1
|
4
|
+
data.tar.gz: afedfb85e018faf90a4a84b712d0b0e8060e7c898868b02499a0bd87bce81984
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a90b5fa2032eb15f8dacb12ccbe1f4fc711f8ebdd4a4f90b24291d146af948413783b484c3bc0054614e7deb9f5acff5a90cf9da96f1d86f9481b85146debf2b
|
7
|
+
data.tar.gz: d3db627db5dab2c89517cd8eaf34e66dbadb4b17ae43b5533fd4e6430e4372cc09f7ebb509c509281954cd1896fc42713947d2aec631557955a7488e52f562ee
|
data/lib/fly_replay.rb
ADDED
@@ -0,0 +1,29 @@
|
|
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
|
@@ -42,6 +42,7 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
42
42
|
"sentry" => false,
|
43
43
|
"sudo" => false,
|
44
44
|
"swap" => nil,
|
45
|
+
"tigris" => false,
|
45
46
|
"thruster" => false,
|
46
47
|
"variant" => nil,
|
47
48
|
"windows" => false,
|
@@ -161,6 +162,9 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
161
162
|
class_option :litefs, type: :boolean, default: OPTION_DEFAULTS.litefs,
|
162
163
|
desc: "replicate sqlite3 databases using litefs"
|
163
164
|
|
165
|
+
class_option :tigris, type: :boolean, default: OPTION_DEFAULTS.tigris,
|
166
|
+
desc: "configure active storage to use tigris"
|
167
|
+
|
164
168
|
class_option :postgresql, aliases: "--postgres", type: :boolean, default: OPTION_DEFAULTS.postgresql,
|
165
169
|
desc: "include postgresql libraries"
|
166
170
|
|
@@ -372,6 +376,10 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
372
376
|
remove_file "config/dockerfile.yml"
|
373
377
|
end
|
374
378
|
|
379
|
+
if options.tigris?
|
380
|
+
configure_tigris
|
381
|
+
end
|
382
|
+
|
375
383
|
# check Dockerfile for common errors: missing packages, mismatched Ruby version;
|
376
384
|
# also add DATABASE_URL to fly.toml if needed
|
377
385
|
if options.skip? && File.exist?("Dockerfile")
|
@@ -548,6 +556,10 @@ private
|
|
548
556
|
system "bundle add redis --skip-install" unless @gemfile.include? "redis"
|
549
557
|
end
|
550
558
|
|
559
|
+
if options.tigris?
|
560
|
+
system "bundle add aws-sdk-s3 --require=false --skip-install" unless @gemfile.include? "aws-sdk-s3"
|
561
|
+
end
|
562
|
+
|
551
563
|
if options.sentry?
|
552
564
|
system "bundle add sentry-ruby --skip-install" unless @gemfile.include? "sentry-ruby"
|
553
565
|
system "bundle add sentry-rails --skip-install" unless @gemfile.include? "sentry-rails"
|
@@ -994,7 +1006,7 @@ private
|
|
994
1006
|
instructions = IO.read @@instructions["base"]
|
995
1007
|
|
996
1008
|
if instructions.start_with? "#!"
|
997
|
-
instructions = "# custom instructions\nRUN #{
|
1009
|
+
instructions = "# custom instructions\nRUN #{@@instructions["base"].strip}"
|
998
1010
|
end
|
999
1011
|
|
1000
1012
|
instructions.html_safe
|
@@ -1006,7 +1018,7 @@ private
|
|
1006
1018
|
instructions = IO.read @@instructions["build"]
|
1007
1019
|
|
1008
1020
|
if instructions.start_with? "#!"
|
1009
|
-
instructions = "# custom build instructions\nRUN #{
|
1021
|
+
instructions = "# custom build instructions\nRUN #{@@instructions["build"].strip}"
|
1010
1022
|
end
|
1011
1023
|
|
1012
1024
|
instructions.html_safe
|
@@ -1018,7 +1030,7 @@ private
|
|
1018
1030
|
instructions = IO.read @@instructions["deploy"]
|
1019
1031
|
|
1020
1032
|
if instructions.start_with? "#!"
|
1021
|
-
instructions = "# custom deploy instructions\nRUN #{
|
1033
|
+
instructions = "# custom deploy instructions\nRUN #{@@instructions["deploy"].strip}"
|
1022
1034
|
end
|
1023
1035
|
|
1024
1036
|
instructions.html_safe
|
@@ -1299,6 +1311,49 @@ private
|
|
1299
1311
|
system "#{flyctl} consul attach"
|
1300
1312
|
end
|
1301
1313
|
|
1314
|
+
def configure_tigris
|
1315
|
+
return unless options.tigris?
|
1316
|
+
|
1317
|
+
service = [
|
1318
|
+
"tigris:",
|
1319
|
+
" service: S3",
|
1320
|
+
' access_key_id: <%= ENV["AWS_ACCESS_KEY_ID"] %>',
|
1321
|
+
' secret_access_key: <%= ENV["AWS_SECRET_ACCESS_KEY"] %>',
|
1322
|
+
' endpoint: <%= ENV["AWS_ENDPOINT_URL_S3"] %>',
|
1323
|
+
' bucket: <%= ENV["BUCKET_NAME"] %>'
|
1324
|
+
]
|
1325
|
+
|
1326
|
+
shell = Thor::Base.shell.new
|
1327
|
+
|
1328
|
+
if File.exist?("config/storage.yml")
|
1329
|
+
storage = IO.read("config/storage.yml")
|
1330
|
+
if storage.include? "tigris"
|
1331
|
+
STDOUT.puts shell.set_color("unchanged".rjust(12), Thor::Shell::Color::BLUE, Thor::Shell::Color::BOLD) +
|
1332
|
+
" config/storage.yml"
|
1333
|
+
else
|
1334
|
+
storage = storage.strip + "\n\n" + service.join("\n") + "\n"
|
1335
|
+
IO.write("config/storage.yml", storage)
|
1336
|
+
STDOUT.puts shell.set_color("updated".rjust(12), Thor::Shell::Color::GREEN, Thor::Shell::Color::BOLD) +
|
1337
|
+
" config/storage.yml"
|
1338
|
+
end
|
1339
|
+
end
|
1340
|
+
|
1341
|
+
if File.exist?("config/environments/production.rb")
|
1342
|
+
production = IO.read("config/environments/production.rb")
|
1343
|
+
if !production.include?("tigris") && production.include?("config.active_storage.service")
|
1344
|
+
production.sub!(/config.active_storage.service.*/, "config.active_storage.service = :tigris")
|
1345
|
+
production.sub! "# Store uploaded files on the local file system",
|
1346
|
+
"# Store uploaded files in Tigris Global Object Storage"
|
1347
|
+
IO.write("config/environments/production.rb", production)
|
1348
|
+
STDOUT.puts shell.set_color("updated".rjust(12), Thor::Shell::Color::GREEN, Thor::Shell::Color::BOLD) +
|
1349
|
+
" config/environments/production.rb"
|
1350
|
+
else
|
1351
|
+
STDOUT.puts shell.set_color("unchanged".rjust(12), Thor::Shell::Color::BLUE, Thor::Shell::Color::BOLD) +
|
1352
|
+
" config/environments/production.yml"
|
1353
|
+
end
|
1354
|
+
end
|
1355
|
+
end
|
1356
|
+
|
1302
1357
|
def fly_make_toml
|
1303
1358
|
toml = File.read("fly.toml")
|
1304
1359
|
|
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.15
|
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-05
|
11
|
+
date: 2024-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -37,6 +37,7 @@ files:
|
|
37
37
|
- Rakefile
|
38
38
|
- lib/dockerfile-rails.rb
|
39
39
|
- lib/dockerfile-rails/scanner.rb
|
40
|
+
- lib/fly_replay.rb
|
40
41
|
- lib/generators/dockerfile_generator.rb
|
41
42
|
- lib/generators/templates/Dockerfile.erb
|
42
43
|
- lib/generators/templates/_apt_install.erb
|
@@ -74,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '0'
|
76
77
|
requirements: []
|
77
|
-
rubygems_version: 3.5.
|
78
|
+
rubygems_version: 3.5.9
|
78
79
|
signing_key:
|
79
80
|
specification_version: 4
|
80
81
|
summary: Dockerfile generator for Rails
|