FROM ruby:3.1.2-alpine as build
ENV RAILS_ENV "production"

RUN apk add --update --no-cache build-base git fish nodejs yarn mariadb-dev libxml2-dev libxslt-dev tzdata
RUN gem install bundler -v=2.3.16

ENV APP_HOME /app
WORKDIR $APP_HOME

COPY Gemfile* $APP_HOME/
RUN bundle config set --local path 'vendor/bundle'
RUN bundle install && find vendor/bundle -name "*.gem" -type f -exec rm -rf {} +

COPY package.json yarn.lock $APP_HOME/
RUN yarn install --check-files
COPY . $APP_HOME
RUN bundle exec rake assets:precompile
RUN rm -rf node_modules && rm -rf tmp/cache/assets && rm -rf log/*.log

FROM ruby:3.1.2-alpine
ENV RAILS_ENV "production"
WORKDIR /home/app/asclepius_backend
RUN apk add --update --no-cache build-base mariadb-dev libxml2-dev libxslt-dev tzdata fish
COPY --from=build /app /home/app/asclepius_backend
RUN cp config/database.yml.docker config/database.yml

RUN bundle config set --local path 'vendor/bundle'