dockerfile-rails 1.6.6 → 1.6.7
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/README.md +1 -0
- data/lib/generators/dockerfile_generator.rb +26 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c190ebed537c8bceba2405b670d2fc65b189e0d702112b39deec6cea801ebf23
|
4
|
+
data.tar.gz: 4d52c7dc5a0f6d764a1abb426318bb1f8ebbfa4225c28d6577d4ceac4f298fa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca197bd8b0262b8525102c55b9f8454931d388162059f8d4007e87ae27f85df453b40e47c76e88f438bb39da566faa02608cb87b6d3c6bd9dd9c4c08529c2f46
|
7
|
+
data.tar.gz: 48aa82c2ec5c8e6687260ce991899fe0f1faab8e914f78f88ed024ffa0a94c3a5d4b32340f5670c8d3deddc37b1d562f959e77118e7988aab65a8475bc2bdfb0
|
data/README.md
CHANGED
@@ -51,6 +51,7 @@ different contents. If both are specified, `--force` takes precedence.
|
|
51
51
|
* `--compose` - generate a `docker-compose.yml` file
|
52
52
|
* `--max-idle=n` - exit afer *n* seconds of inactivity. Supports [iso 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) and [sleep](https://man7.org/linux/man-pages/man1/sleep.1.html#DESCRIPTION) syntaxes. Uses passenger for now, awaiting [puma](https://github.com/puma/puma/issues/2580) support.
|
53
53
|
* `--nginx` - serve static files via [nginx](https://www.nginx.com/). May require `--root` on some targets to access `/dev/stdout`
|
54
|
+
* `--thruster` - serve static files via [thruster](https://github.com/basecamp/thruster?tab=readme-ov-file#thruster).
|
54
55
|
* `--no-link` - don't add [--link](https://docs.docker.com/engine/reference/builder/#copy---link) to COPY statements. Some tools (like at the moment, [buildah](https://www.redhat.com/en/topics/containers/what-is-buildah)) don't yet support this feature.
|
55
56
|
* `--no-lock` - don't add linux platforms, set `BUNDLE_DEPLOY`, or `--frozen-lockfile`. May be needed at times to work around a [rubygems bug](https://github.com/rubygems/rubygems/issues/6082#issuecomment-1329756343).
|
56
57
|
* `--sudo` - install and configure sudo to enable `sudo -iu rails` access to full environment
|
@@ -40,6 +40,7 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
40
40
|
"sentry" => false,
|
41
41
|
"sudo" => false,
|
42
42
|
"swap" => nil,
|
43
|
+
"thruster" => false,
|
43
44
|
"variant" => nil,
|
44
45
|
"windows" => false,
|
45
46
|
"yjit" => false,
|
@@ -185,6 +186,9 @@ class DockerfileGenerator < Rails::Generators::Base
|
|
185
186
|
class_option :label, type: :hash, default: {},
|
186
187
|
desc: "Add Docker label(s)"
|
187
188
|
|
189
|
+
class_option :thruster, type: :boolean, default: OPTION_DEFAULTS.thruster,
|
190
|
+
desc: "use Thruster HTTP/2 proxy"
|
191
|
+
|
188
192
|
class_option :nginx, type: :boolean, default: OPTION_DEFAULTS.nginx,
|
189
193
|
desc: "Serve static files with nginx"
|
190
194
|
|
@@ -507,6 +511,10 @@ private
|
|
507
511
|
system "bundle add sentry-rails --skip-install" unless @gemfile.include? "sentry-rails"
|
508
512
|
end
|
509
513
|
|
514
|
+
if options.thruster?
|
515
|
+
system "bundle add thruster --skip-install" unless @gemfile.include? "thruster"
|
516
|
+
end
|
517
|
+
|
510
518
|
if options.rollbar?
|
511
519
|
system "bundle add rollbar --skip-install" unless @gemfile.include? "rollbar"
|
512
520
|
end
|
@@ -1126,6 +1134,10 @@ private
|
|
1126
1134
|
nginx: '/usr/sbin/nginx -g "daemon off;"',
|
1127
1135
|
rails: "./bin/rails server -p 3001"
|
1128
1136
|
}
|
1137
|
+
elsif options.thruster? || @gemfile.include?("thruster")
|
1138
|
+
{
|
1139
|
+
rails: "bundle exec thrust ./bin/rails server"
|
1140
|
+
}
|
1129
1141
|
else
|
1130
1142
|
{
|
1131
1143
|
rails: "./bin/rails server"
|
@@ -1249,7 +1261,7 @@ private
|
|
1249
1261
|
list.map { |name, cmd| " #{name} = #{cmd.inspect}" }.join("\n") + '\1')
|
1250
1262
|
else
|
1251
1263
|
toml += "\n[processes]\n" +
|
1252
|
-
list.map { |name, cmd| " #{name} = #{cmd.inspect}\n" }.join
|
1264
|
+
list.map { |name, cmd| " #{name} = #{cmd.inspect}\n" }.join + "\n"
|
1253
1265
|
|
1254
1266
|
app = list.has_key?("app") ? "app" : list.keys.first
|
1255
1267
|
|
@@ -1291,7 +1303,19 @@ private
|
|
1291
1303
|
|
1292
1304
|
if match
|
1293
1305
|
size = ((match[1].to_i * (suffixes[match[2]] || 1)) / 1048576.0).round
|
1294
|
-
toml
|
1306
|
+
if toml.include? "swap_size_mb"
|
1307
|
+
toml.sub!(/swap_size_mb.*/, "swap_size_mb = #{size}")
|
1308
|
+
else
|
1309
|
+
toml += "swap_size_mb = #{size}\n\n"
|
1310
|
+
end
|
1311
|
+
end
|
1312
|
+
end
|
1313
|
+
|
1314
|
+
# Add statics if not already present and not using a web server and workdir doesn't contain a variable
|
1315
|
+
unless options.nginx? || using_passenger? || options.thruster? || @gemfile.include?("thruster")
|
1316
|
+
workdir = (IO.read "Dockerfile" rescue "").scan(/^\s*WORKDIR\s+(\S+)/).flatten.last
|
1317
|
+
unless workdir && !workdir.include?("$") && toml.include?("[statics]")
|
1318
|
+
toml += "[[statics]]\n guest_path = \"#{workdir}/public\"\n url_prefix = \"/\"\n\n"
|
1295
1319
|
end
|
1296
1320
|
end
|
1297
1321
|
|
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.7
|
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-03-
|
11
|
+
date: 2024-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|