dockerfile-rails 1.6.13 → 1.6.15

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: 6e248008553d63dc5b088dadfa1e79620d4f2db08f67bd67506a5f8a0421b973
4
- data.tar.gz: de2ded8ae1828b7db4812fc9082928c9d4d57caf3ed4aa965134c2dec76dcb83
3
+ metadata.gz: 408907e489bd861b56cdbf73efa0213276ffee3cd1edaab526e3e978325d6bb1
4
+ data.tar.gz: afedfb85e018faf90a4a84b712d0b0e8060e7c898868b02499a0bd87bce81984
5
5
  SHA512:
6
- metadata.gz: 8763575bc2a8d064e2ee20d3f6add987d81fede3656ba1f8c8b38c0f6808c8448ca31ca4e362ddac9bf275c38c10cb6baf0bbd113a842726623cff7a63b379c1
7
- data.tar.gz: f54366d61f5f18d0db311922c5acae95950c5e56d6b56d262a93486c0019e29ac88744035d670eded6a2a08353a24c1a1f4093fdea38ba61a439322373c8dc22
6
+ metadata.gz: a90b5fa2032eb15f8dacb12ccbe1f4fc711f8ebdd4a4f90b24291d146af948413783b484c3bc0054614e7deb9f5acff5a90cf9da96f1d86f9481b85146debf2b
7
+ data.tar.gz: d3db627db5dab2c89517cd8eaf34e66dbadb4b17ae43b5533fd4e6430e4372cc09f7ebb509c509281954cd1896fc42713947d2aec631557955a7488e52f562ee
@@ -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,7 +376,12 @@ class DockerfileGenerator < Rails::Generators::Base
372
376
  remove_file "config/dockerfile.yml"
373
377
  end
374
378
 
375
- # check Dockerfile for common errors: missing packages, mismatched Ruby version
379
+ if options.tigris?
380
+ configure_tigris
381
+ end
382
+
383
+ # check Dockerfile for common errors: missing packages, mismatched Ruby version;
384
+ # also add DATABASE_URL to fly.toml if needed
376
385
  if options.skip? && File.exist?("Dockerfile")
377
386
  message = nil
378
387
  shell = Thor::Base.shell.new
@@ -393,6 +402,14 @@ class DockerfileGenerator < Rails::Generators::Base
393
402
  STDERR.puts "\n" + shell.set_color(message, Thor::Shell::Color::RED, Thor::Shell::Color::BOLD)
394
403
  end
395
404
 
405
+ if (options.sqlite3? || @sqlite3) && !dockerfile.include?("DATABASE_URL") && File.exist?("fly.toml")
406
+ toml = IO.read("fly.toml")
407
+ if !toml.include?("[[env]]")
408
+ toml += "\n[[env]]\n DATABASE_URL = \"sqlite3:///data/production.sqlite3\"\n"
409
+ File.write "fly.toml", toml
410
+ end
411
+ end
412
+
396
413
  exit 42 if message
397
414
  end
398
415
  end
@@ -539,6 +556,10 @@ private
539
556
  system "bundle add redis --skip-install" unless @gemfile.include? "redis"
540
557
  end
541
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
+
542
563
  if options.sentry?
543
564
  system "bundle add sentry-ruby --skip-install" unless @gemfile.include? "sentry-ruby"
544
565
  system "bundle add sentry-rails --skip-install" unless @gemfile.include? "sentry-rails"
@@ -985,7 +1006,7 @@ private
985
1006
  instructions = IO.read @@instructions["base"]
986
1007
 
987
1008
  if instructions.start_with? "#!"
988
- instructions = "# custom instructions\nRUN #{@instructions["base"].strip}"
1009
+ instructions = "# custom instructions\nRUN #{@@instructions["base"].strip}"
989
1010
  end
990
1011
 
991
1012
  instructions.html_safe
@@ -997,7 +1018,7 @@ private
997
1018
  instructions = IO.read @@instructions["build"]
998
1019
 
999
1020
  if instructions.start_with? "#!"
1000
- instructions = "# custom build instructions\nRUN #{@instructions["build"].strip}"
1021
+ instructions = "# custom build instructions\nRUN #{@@instructions["build"].strip}"
1001
1022
  end
1002
1023
 
1003
1024
  instructions.html_safe
@@ -1009,7 +1030,7 @@ private
1009
1030
  instructions = IO.read @@instructions["deploy"]
1010
1031
 
1011
1032
  if instructions.start_with? "#!"
1012
- instructions = "# custom deploy instructions\nRUN #{@instructions["deploy"].strip}"
1033
+ instructions = "# custom deploy instructions\nRUN #{@@instructions["deploy"].strip}"
1013
1034
  end
1014
1035
 
1015
1036
  instructions.html_safe
@@ -1290,6 +1311,49 @@ private
1290
1311
  system "#{flyctl} consul attach"
1291
1312
  end
1292
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
+
1293
1357
  def fly_make_toml
1294
1358
  toml = File.read("fly.toml")
1295
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.13
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-16 00:00:00.000000000 Z
11
+ date: 2024-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails