dockerfile-rails 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/DEMO.md +5 -3
- data/README.md +1 -1
- data/lib/generators/dockerfile_generator.rb +25 -9
- data/lib/generators/templates/Dockerfile.erb +5 -6
- data/lib/generators/templates/_install_node.erb +4 -1
- data/lib/generators/templates/_nginx.erb +3 -0
- data/lib/generators/templates/_npm_install.erb +0 -3
- 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: 9c9c9a8eb85b3dbb31aefb0f0f3fa9bac0ab070e0b2807a0e084cc553643ece4
|
4
|
+
data.tar.gz: 79388988476275627c99e27630556b02a732b7baf9737003ac5276395825ed14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78271283892ec8c0140ca96a6bc3347c2836ca6f720752f3d5956d8bd267a63efb1b19a6efa1ba45b8cb045e4e7e036c3ec74c9aa2b816a347ed9f26276e5134
|
7
|
+
data.tar.gz: 036137a0829ecc764007181d4332b940d45f15197e02360db7d6ac960039463084d3ceaeae65f269b813896fbe4daabc1e97dcb16b42f7dd2db992848985f040
|
data/DEMO.md
CHANGED
@@ -310,10 +310,12 @@ docker buildx build . -t rails-demo
|
|
310
310
|
docker run -p 3000:3000 -e RAILS_MASTER_KEY=$(cat config/master.key) rails-demo
|
311
311
|
```
|
312
312
|
|
313
|
-
# Demo 6 - Grover / puppeteer /
|
313
|
+
# Demo 6 - Grover / puppeteer / Chromium
|
314
314
|
|
315
|
-
|
316
|
-
|
315
|
+
Uses Grover to produce a PDF of a web page. If you specify a `--platform` that
|
316
|
+
contains `amd64`, chrome will be substituted for Chromium. `--platform` is
|
317
|
+
required to access Chrome as Google doesn't supply Chrome binaries for Linux on
|
318
|
+
ARM.
|
317
319
|
|
318
320
|
```bash
|
319
321
|
rails new demo --minimal
|
data/README.md
CHANGED
@@ -40,7 +40,7 @@ bin/rails generate dockerfile
|
|
40
40
|
|
41
41
|
* `--ci` - include test gems in deployed image
|
42
42
|
* `--compose` - generate a `docker-compose.yml` file
|
43
|
-
* `--nginx` - serve static files via [nginx](https://www.nginx.com/)
|
43
|
+
* `--nginx` - serve static files via [nginx](https://www.nginx.com/). May require `--root` on some targets to access `/dev/stdout`
|
44
44
|
|
45
45
|
### Add a Database:
|
46
46
|
|
@@ -259,7 +259,7 @@ private
|
|
259
259
|
end
|
260
260
|
|
261
261
|
def run_as_root?
|
262
|
-
options.root?
|
262
|
+
options.root?
|
263
263
|
end
|
264
264
|
|
265
265
|
def using_node?
|
@@ -412,7 +412,13 @@ private
|
|
412
412
|
end
|
413
413
|
|
414
414
|
# Puppeteer
|
415
|
-
|
415
|
+
if using_puppeteer?
|
416
|
+
if options.platform&.include? "amd"
|
417
|
+
packages << "google-chrome-stable"
|
418
|
+
else
|
419
|
+
packages += %w(chromium chromium-sandbox)
|
420
|
+
end
|
421
|
+
end
|
416
422
|
|
417
423
|
# nginx
|
418
424
|
packages << "nginx" if options.nginx?
|
@@ -423,7 +429,7 @@ private
|
|
423
429
|
def deploy_repos
|
424
430
|
repos = []
|
425
431
|
|
426
|
-
if using_puppeteer?
|
432
|
+
if using_puppeteer? && deploy_packages.include?("google-chrome-stable")
|
427
433
|
repos += [
|
428
434
|
"curl https://dl-ssl.google.com/linux/linux_signing_key.pub |",
|
429
435
|
"gpg --dearmor > /etc/apt/trusted.gpg.d/google-archive.gpg &&",
|
@@ -457,6 +463,14 @@ private
|
|
457
463
|
def build_env
|
458
464
|
env = {}
|
459
465
|
|
466
|
+
if using_execjs?
|
467
|
+
env["PATH"] = "/root/.local/share/fnm/aliases/default/bin/:$PATH"
|
468
|
+
end
|
469
|
+
|
470
|
+
if using_puppeteer?
|
471
|
+
env["PUPPETEER_SKIP_CHROMIUM_DOWNLOAD"] = "true"
|
472
|
+
end
|
473
|
+
|
460
474
|
if @@args["build"]
|
461
475
|
env.merge! @@args["build"].to_h { |key, value| [key, "$#{key}"] }
|
462
476
|
end
|
@@ -491,12 +505,14 @@ private
|
|
491
505
|
end
|
492
506
|
|
493
507
|
if using_puppeteer?
|
494
|
-
if
|
495
|
-
|
496
|
-
env["PUPPETEER_RUBY_NO_SANDBOX"] = "1" if @gemfile.include? "puppeteer-ruby"
|
497
|
-
end
|
508
|
+
env["GROVER_NO_SANDBOX"] = "true" if @gemfile.include? "grover"
|
509
|
+
env["PUPPETEER_RUBY_NO_SANDBOX"] = "1" if @gemfile.include? "puppeteer-ruby"
|
498
510
|
|
499
|
-
|
511
|
+
if options.platform&.include? "amd"
|
512
|
+
env["PUPPETEER_EXECUTABLE_PATH"] = "/usr/bin/google-chrome"
|
513
|
+
else
|
514
|
+
env["PUPPETEER_EXECUTABLE_PATH"] = "/usr/bin/chromium"
|
515
|
+
end
|
500
516
|
end
|
501
517
|
|
502
518
|
if @@args["deploy"]
|
@@ -675,7 +691,7 @@ private
|
|
675
691
|
def procfile
|
676
692
|
if options.nginx?
|
677
693
|
{
|
678
|
-
nginx: 'nginx -g "daemon off;"',
|
694
|
+
nginx: '/usr/sbin/nginx -g "daemon off;"',
|
679
695
|
rails: "./bin/rails server -p 3001"
|
680
696
|
}
|
681
697
|
else
|
@@ -78,7 +78,7 @@ ARG <%= build_args.map {|key, value| "#{key}=#{value.inspect}"}.join(" \\\n "
|
|
78
78
|
|
79
79
|
<% end -%>
|
80
80
|
<% unless build_env.empty? -%>
|
81
|
-
#
|
81
|
+
# Build options
|
82
82
|
ENV <%= build_env.join(" \\\n ") %>
|
83
83
|
|
84
84
|
<% end -%>
|
@@ -156,15 +156,14 @@ RUN gem install foreman
|
|
156
156
|
|
157
157
|
<% end -%>
|
158
158
|
<% unless run_as_root? -%>
|
159
|
-
#
|
159
|
+
# Run and own the application files as a non-root user for security
|
160
160
|
<% if options.compose? -%>
|
161
161
|
ARG UID=1000 \
|
162
162
|
GID=1000
|
163
163
|
RUN groupadd -f -g $GID rails && \
|
164
|
-
useradd -u $UID -g $GID rails
|
165
|
-
<%
|
166
|
-
|
167
|
-
<% end -%>
|
164
|
+
useradd -u $UID -g $GID rails<% else -%>
|
165
|
+
RUN useradd rails<% end -%><% if options.nginx? %> && \
|
166
|
+
chown rails:rails /var/lib/nginx /var/log/nginx/*<% end %>
|
168
167
|
USER rails:rails
|
169
168
|
|
170
169
|
<% end -%>
|
@@ -13,9 +13,12 @@ ARG YARN_VERSION=<%= yarn_version %>
|
|
13
13
|
<% end -%>
|
14
14
|
<% if node_version -%>
|
15
15
|
RUN curl -fsSL https://fnm.vercel.app/install | bash && \
|
16
|
-
/root/.local/share/fnm/fnm install $NODE_VERSION
|
16
|
+
/root/.local/share/fnm/fnm install $NODE_VERSION<% if !run_as_root? && using_execjs? %> && \
|
17
|
+
mv /root/.local/share/fnm/aliases/default/bin/node /usr/local/bin<% end %>
|
18
|
+
<% if !using_execjs? || yarn_version -%>
|
17
19
|
ENV PATH=/root/.local/share/fnm/aliases/default/bin/:$PATH
|
18
20
|
<% end -%>
|
21
|
+
<% end -%>
|
19
22
|
<% if yarn_version -%>
|
20
23
|
<% if yarn_version < '2' -%>
|
21
24
|
RUN npm install -g yarn@$YARN_VERSION
|
@@ -1,5 +1,8 @@
|
|
1
1
|
# configure nginx
|
2
2
|
RUN gem install foreman && \
|
3
|
+
<% unless run_as_root? -%>
|
4
|
+
sed -i 's|pid /run|pid /rails/tmp/pids|' /etc/nginx/nginx.conf && \
|
5
|
+
<% end -%>
|
3
6
|
sed -i 's/access_log\s.*;/access_log \/dev\/stdout;/' /etc/nginx/nginx.conf && \
|
4
7
|
sed -i 's/error_log\s.*;/error_log \/dev\/stderr info;/' /etc/nginx/nginx.conf
|
5
8
|
|
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.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Ruby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|