FROM heroku/heroku:20-build as build

ARG BUNDLE_GEMS__CONTRIBSYS__COM

ENV STACK heroku-20
ENV RACK_ENV production
ENV RAILS_ENV production
ENV NODE_ENV production
ENV PORT 8080

WORKDIR /home/application/

RUN curl -s --location https://github.com/heroku/heroku-buildpack-ruby/archive/v221.tar.gz | tar -xzC .
RUN curl -s --location https://github.com/heroku/heroku-buildpack-nodejs/archive/v176.tar.gz | tar -xzC .

COPY app/ app/
COPY bin/ bin/
COPY config/ config/
COPY db/ db/
COPY lib/ lib/
COPY public/ public/
COPY vendor/ vendor/
COPY config.ru config.ru
COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock
COPY Rakefile Rakefile
COPY babel.config.js babel.config.js
COPY package.json package.json
COPY postcss.config.js postcss.config.js
COPY yarn.lock yarn.lock

RUN heroku-buildpack-ruby-221/bin/detect /home/application/
RUN heroku-buildpack-ruby-221/bin/compile /home/application/ /tmp/ruby/cache /tmp/ruby/env

RUN heroku-buildpack-nodejs-176/bin/detect /home/application/
RUN heroku-buildpack-nodejs-176/bin/compile /home/application/ /tmp/nodejs/cache /tmp/nodejs/env

FROM heroku/heroku:20

RUN useradd --create-home application

USER application

WORKDIR /home/application/

COPY --chown=application --from=build /home/application/public/ /home/application/public/