mirror of https://github.com/codevalet/codevalet
Switch the webapp to a multi-stage build to reduce size and rebuilds
This should help avoid unnecessary incremental builds locally
This commit is contained in:
parent
a2131dddd8
commit
662861bac1
|
@ -1,27 +1,39 @@
|
|||
FROM ruby:2.3-alpine
|
||||
FROM ruby:2.3-alpine as builder
|
||||
|
||||
ARG BUILD_PKGS="ruby-dev openssl-dev gcc make libc-dev binutils"
|
||||
ARG APP_DIR=/webapp
|
||||
|
||||
RUN mkdir -p ${APP_DIR}/vendor
|
||||
|
||||
WORKDIR ${APP_DIR}
|
||||
ARG BUILD_PKGS="ruby-dev openssl-dev gcc make libc-dev binutils"
|
||||
|
||||
ENV GEM_HOME=${APP_DIR}/vendor/gems
|
||||
ENV BUNDLE_PATH=${APP_DIR}/vendor/gems
|
||||
ENV BUNDLE_APP_CONFIG=${APP_DIR}/vendor/gems/.bundle
|
||||
ENV BUNDLE_DISABLE_SHARED_GEMS=true
|
||||
|
||||
RUN mkdir -p ${APP_DIR}/vendor
|
||||
|
||||
WORKDIR ${APP_DIR}
|
||||
ADD Gemfile* ${APP_DIR}/
|
||||
RUN apk add -U ${BUILD_PKGS} && \
|
||||
bundle install && \
|
||||
apk del ${BUILD_PKGS} && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
# Doing a multi-stage build to reset some stuff for a smaller image
|
||||
FROM ruby:2.3-alpine
|
||||
|
||||
ARG APP_DIR=/webapp
|
||||
WORKDIR ${APP_DIR}
|
||||
|
||||
COPY --from=builder ${APP_DIR} .
|
||||
|
||||
ENV GEM_HOME=${APP_DIR}/vendor/gems
|
||||
ENV BUNDLE_PATH=${APP_DIR}/vendor/gems
|
||||
ENV BUNDLE_APP_CONFIG=${APP_DIR}/vendor/gems/.bundle
|
||||
ENV BUNDLE_DISABLE_SHARED_GEMS=true
|
||||
|
||||
ADD app.rb ${APP_DIR}/
|
||||
ADD monkeys.txt ${APP_DIR}/
|
||||
ADD config.ru ${APP_DIR}/
|
||||
ADD views ${APP_DIR}/views/
|
||||
ADD assets ${APP_DIR}/assets/
|
||||
|
||||
RUN apk add -U ${BUILD_PKGS} && \
|
||||
bundle install && \
|
||||
apk del ${BUILD_PKGS} && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
CMD bundle exec puma
|
||||
|
|
Loading…
Reference in New Issue