kubernaut/dockerfiles/alpine.Dockerfile

46 lines
694 B
Docker

ARG RUBY_VERSION="3.4.3"
FROM docker.io/library/ruby:${RUBY_VERSION}-alpine AS base
WORKDIR /app
RUN <<EOT
apk update -q
apk add bash
gem update --system --no-document
gem install -N bundler
EOT
FROM base AS build
ENV BUNDLE_DEPLOYMENT=true \
BUNDLE_WITHOUT="development test"
RUN <<EOT
apk add musl-dev gcc make
EOT
COPY Gemfile* .
RUN <<EOT
bundle install
EOT
FROM base
ENV PORT=4567
RUN adduser --home /app --disabled-password app
USER app:app
COPY --from=build /usr/local/bundle /usr/local/bundle
COPY --from=build --chown=app:app /app /app
COPY --chown=app:app . .
EXPOSE $PORT
ENTRYPOINT [ "/app/dockerfiles/entrypoint.sh" ]
CMD [ "bundle", "exec", "puma" ]