1
- FROM ruby:3.0-alpine AS gems
1
+ FROM ruby:3.0-alpine AS ruby
2
2
3
3
WORKDIR /app/
4
4
5
5
# Install system dependencies
6
- RUN apk add --no-cache build-base curl-dev git postgresql-dev postgresql
6
+ RUN apk add --no-cache build-base curl-dev git postgresql-dev cmake
7
7
8
8
# Install Bundler
9
9
RUN gem update --system && gem install bundler
@@ -17,22 +17,38 @@ RUN bundle config set --local without "development test" && \
17
17
bundle config set --local deployment true && \
18
18
bundle install
19
19
20
- FROM gems AS assets
20
+ FROM ruby AS node
21
+
22
+ # Install Yarn
23
+ RUN apk add --no-cache nodejs yarn
24
+
25
+ # Install NPM dependencies
26
+ ADD package.json /app/
27
+ ADD yarn.lock /app/
28
+
29
+ RUN yarn install
30
+
31
+ FROM node AS assets
21
32
22
33
# Only add files that affect the assets:precompile task
23
34
ADD Rakefile /app/Rakefile
35
+ ADD postcss.config.js /app/postcss.config.js
24
36
ADD config/application.rb /app/config/application.rb
25
37
ADD config/boot.rb /app/config/boot.rb
26
38
ADD config/environment.rb /app/config/environment.rb
27
39
ADD config/environments/production.rb /app/config/environments/production.rb
28
40
ADD config/initializers/assets.rb /app/config/initializers/assets.rb
29
41
ADD config/locales /app/config/locales
42
+ ADD config/webpacker.yml /app/config/webpacker.yml
43
+ ADD config/webpack /app/config/webpack
30
44
ADD app/assets /app/app/assets
45
+ ADD app/javascript /app/app/javascript
46
+ ADD bin/webpack /app/bin/webpack
31
47
32
48
ARG SECRET_KEY_BASE
33
- RUN rake assets:precompile
49
+ RUN NODE_ENV=production rake assets:precompile
34
50
35
- FROM gems
51
+ FROM ruby
36
52
37
53
ENV LC_ALL en_US.UTF-8
38
54
ENV LANG en_US.UTF-8
@@ -55,6 +71,7 @@ ADD . /app/
55
71
56
72
# Copy assets
57
73
COPY --from=assets /app/public/assets /app/public/assets
74
+ COPY --from=assets /app/public/packs /app/public/packs
58
75
59
76
RUN mkdir -p /app/tmp/pids/
60
77
RUN chown -R $UID:$GID /app/
0 commit comments