kubernaut/dockerfiles/bookworm.Dockerfile

51 lines
1.0 KiB
Docker

ARG RUBY_VERSION="3.4.3"
FROM docker.io/library/ruby:${RUBY_VERSION}-slim-bookworm AS base
WORKDIR /app
RUN <<EOT
apt-get update -qq
rm -rf /var/lib/apt/lists /var/cache/apt/archives
gem update --system --no-document
gem install -N bundler
EOT
ENV RACK_ENV="production" \
BUNDLE_DEPLOYMENT=true \
BUNDLE_PATH="/usr/local/bundle" \
BUNDLE_WITHOUT="development test"
FROM base AS build
RUN <<EOT
apt-get update -qq
apt-get install --yes --no-install-recommends gcc make libc-dev
rm -rf /var/lib/apt/lists /var/cache/apt/archives
EOT
COPY Gemfile Gemfile.lock ./
RUN <<EOT
bundle install
rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git
EOT
FROM base
ENV PORT=4567
# RUN useradd ruby --home /app --shell /bin/sh
RUN useradd --home /app --create-home 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" ]