dockerfile-rails 1.5.7 → 1.5.9
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa278e91ec05725efb320caaecd9ca2cde617166b4ad4157f7103eeccecf4961
|
4
|
+
data.tar.gz: 748f841c1ba25cfa9f126c056a97e6eb9f6e854ea937f0e7c3a93756992746ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6af2d5008690de608fb72d114c59a3a4a56ff7348be8d4a3c8f21243e3a5e002bd53341297ccaece8191c9e53312b080af973e382dc62b698bb0f7e4832cb188
|
7
|
+
data.tar.gz: c87bbb4eee23e9a5c2dc63d297308edc16df2baf42ea68640df6edca33537ed2acd195a0b49438b6d857c26a8812ad0c19809b8e129d0645e80f6e604a3d0553
|
@@ -387,6 +387,11 @@ private
|
|
387
387
|
@using_node = File.exist? "package.json"
|
388
388
|
end
|
389
389
|
|
390
|
+
def using_bun?
|
391
|
+
return @using_bun if @using_bun != nil
|
392
|
+
@using_bun = File.exist?("bun.config.js") || File.exist?("bun.lockb")
|
393
|
+
end
|
394
|
+
|
390
395
|
def using_redis?
|
391
396
|
# Note: If you have redis installed on your computer, 'rails new` will
|
392
397
|
# automatically add redis to your Gemfile, so having it in your Gemfile is
|
@@ -501,7 +506,7 @@ private
|
|
501
506
|
if options.ci? && options.lock? && @gemfile.include?("debug")
|
502
507
|
# https://github.com/rails/rails/pull/47515
|
503
508
|
# https://github.com/rubygems/rubygems/issues/6082#issuecomment-1329756343
|
504
|
-
gems += %w(irb reline) - @gemfile unless Gem.ruby_version >= "3.2.2"
|
509
|
+
gems += %w(irb reline) - @gemfile unless Gem.ruby_version >= Gem::Version.new("3.2.2")
|
505
510
|
end
|
506
511
|
|
507
512
|
gems.sort
|
@@ -572,7 +577,11 @@ private
|
|
572
577
|
# node support, including support for building native modules
|
573
578
|
if using_node?
|
574
579
|
packages += %w(node-gyp pkg-config)
|
575
|
-
|
580
|
+
|
581
|
+
unless using_execjs? || using_puppeteer?
|
582
|
+
packages << "curl"
|
583
|
+
packages << "unzip" if using_bun?
|
584
|
+
end
|
576
585
|
|
577
586
|
# module build process depends on Python, and debian changed
|
578
587
|
# how python is installed with the bullseye release. Below
|
@@ -954,6 +963,14 @@ private
|
|
954
963
|
"latest"
|
955
964
|
end
|
956
965
|
|
966
|
+
|
967
|
+
def bun_version
|
968
|
+
version = `bun --version`[/\d+\.\d+\.\d+/] rescue nil
|
969
|
+
version ||= `npm show bun version`[/\d+\.\d+\.\d+/] rescue nil
|
970
|
+
|
971
|
+
version
|
972
|
+
end
|
973
|
+
|
957
974
|
def depend_on_bootsnap?
|
958
975
|
@gemfile.include? "bootsnap"
|
959
976
|
end
|
@@ -982,7 +999,7 @@ private
|
|
982
999
|
client = api_client_dir
|
983
1000
|
return unless client
|
984
1001
|
|
985
|
-
Dir["#{client}/{package.json,package-lock.json,yarn.lock}"]
|
1002
|
+
Dir["#{client}/{package.json,package-lock.json,yarn.lock,bun.lockb}"]
|
986
1003
|
end
|
987
1004
|
|
988
1005
|
def dbprep_command
|
@@ -58,15 +58,18 @@ FROM base as <%= parallel? ? 'pre' : '' %>build
|
|
58
58
|
|
59
59
|
<% if parallel? -%>
|
60
60
|
|
61
|
-
FROM prebuild as node
|
61
|
+
FROM prebuild as <% if using_bun? %>bun<% else %>node<% end %>
|
62
62
|
|
63
63
|
<% end -%>
|
64
|
-
<% if
|
64
|
+
<% if using_bun? and (!using_execjs? || File.exist?('bun.lockb')) -%>
|
65
|
+
<%= render partial: 'install_node', locals: {bun_version: using_execjs? ? nil : bun_version} %>
|
66
|
+
|
67
|
+
<% elsif using_node? and (!using_execjs? || File.exist?('yarn.lock')) -%>
|
65
68
|
<%= render partial: 'install_node', locals: {node_version: using_execjs? ? nil : node_version, yarn_version: File.exist?('yarn.lock') ? yarn_version : nil} %>
|
66
69
|
|
67
70
|
<% end -%>
|
68
71
|
<% if parallel? -%>
|
69
|
-
<%= render partial: 'npm_install', locals: {sources:
|
72
|
+
<%= render partial: 'npm_install', locals: {sources: Dir[*%w(package.json yarn.lock bun.lockb)]} %>
|
70
73
|
|
71
74
|
|
72
75
|
FROM prebuild as build
|
@@ -122,13 +125,20 @@ RUN passenger-config build-native-support
|
|
122
125
|
|
123
126
|
<% end -%>
|
124
127
|
<% if parallel? -%>
|
128
|
+
<% if using_bun? -%>
|
129
|
+
# Copy bun modules
|
130
|
+
COPY --from=bun /rails/node_modules /rails/node_modules
|
131
|
+
COPY --from=bun /usr/local/bun /usr/local/bun
|
132
|
+
ENV PATH=/usr/local/bun/bin:$PATH
|
133
|
+
<% else -%>
|
125
134
|
# Copy node modules
|
126
135
|
COPY --from=node /rails/node_modules /rails/node_modules
|
127
136
|
COPY --from=node /usr/local/node /usr/local/node
|
128
137
|
ENV PATH=/usr/local/node/bin:$PATH
|
138
|
+
<% end -%>
|
129
139
|
|
130
140
|
<% elsif using_node? -%>
|
131
|
-
<%= render partial: 'npm_install', locals: {sources: Dir[*%w(.npmrc .yarnrc package.json package-lock.json yarn.lock)]} %>
|
141
|
+
<%= render partial: 'npm_install', locals: {sources: Dir[*%w(.npmrc .yarnrc package.json package-lock.json yarn.lock bun.lockb)]} %>
|
132
142
|
|
133
143
|
<% end -%>
|
134
144
|
# Copy application code
|
@@ -1,3 +1,12 @@
|
|
1
|
+
<% if using_bun? -%>
|
2
|
+
# Install Bun
|
3
|
+
<% if bun_version -%>
|
4
|
+
ARG BUN_VERSION=<%= bun_version %>
|
5
|
+
<% end -%>
|
6
|
+
ENV BUN_INSTALL=/usr/local/bun
|
7
|
+
ENV PATH=/usr/local/bun/bin:$PATH
|
8
|
+
RUN curl -fsSL https://bun.sh/install | bash<% if bun_version %> -s -- "bun-v${BUN_VERSION}"<% end %>
|
9
|
+
<% else -%>
|
1
10
|
<% if node_version and yarn_version -%>
|
2
11
|
# Install JavaScript dependencies
|
3
12
|
<% elsif node_version -%>
|
@@ -31,3 +40,4 @@ RUN curl -sL https://github.com/nodenv/node-build/archive/master.tar.gz | tar xz
|
|
31
40
|
<% if node_version -%>
|
32
41
|
rm -rf /tmp/node-build-master
|
33
42
|
<% end -%>
|
43
|
+
<% end -%>
|
@@ -3,14 +3,13 @@ COPY<% if options.link? %> --link<% end %> <%= sources.join(' ') %> ./
|
|
3
3
|
<% if sources.join.include?('.yarnrc') && !Dir['.yarn/releases/*'].empty? -%>
|
4
4
|
COPY<% if options.link? %> --link<% end %> .yarn/releases/* .yarn/releases/
|
5
5
|
<% end -%>
|
6
|
-
<% if
|
7
|
-
RUN <% if options.cache?
|
8
|
-
|
6
|
+
<% if using_bun? -%>
|
7
|
+
RUN <% if options.cache? %>--mount=type=cache,id=bld-bun-cache,target=/root/.bun \
|
8
|
+
<% end %>bun install<% if options.lock? %> --frozen-lockfile<% end %>
|
9
|
+
<% elsif sources.join.include? 'yarn' -%>
|
10
|
+
RUN <% if options.cache? %>--mount=type=cache,id=bld-yarn-cache,target=/root/.yarn \
|
11
|
+
YARN_CACHE_FOLDER=/root/.yarn <% end %>yarn install<% if options.lock? %> --frozen-lockfile<% end %>
|
9
12
|
<% else -%>
|
10
|
-
<% if options.cache?
|
11
|
-
|
12
|
-
npm install
|
13
|
-
<% else -%>
|
14
|
-
RUN npm install
|
15
|
-
<% end -%>
|
13
|
+
RUN <% if options.cache? %>--mount=type=cache,id=bld-npm-cache,target=/root/.npm \
|
14
|
+
<% end %>npm install
|
16
15
|
<% end -%>
|
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.5.
|
4
|
+
version: 1.5.9
|
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-09-
|
11
|
+
date: 2023-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|