ARG BASE_IMAGE=wizewerx/rr-alpine-base:latest ARG GEM_CACHE=${BASE_IMAGE} FROM $GEM_CACHE AS gems-cache RUN mkdir -p /usr/local/bundle FROM $BASE_IMAGE as base WORKDIR /app FROM base as gems WORKDIR /app ENV RAILS_ROOT /app ENV RAILS_LOG_TO_STDOUT true ENV RAILS_ENV production ENV BUNDLE_PATH=/usr/local/bundle RUN apk add --no-cache \ postgresql-dev \ git \ ruby-dev \ && rm -rf /var/cache/apk/* COPY --from=gems-cache /usr/local/bundle /usr/local/bundle COPY Gemfile ./ COPY Gemfile.lock ./ COPY package.json ./ COPY yarn.lock ./ ENV BUNDLE_GIT__WIZEWERX__TECH mike:bd94eefdabc2dcbe0db2a715715751e801fff9e0 RUN bundle config set deployment 'true' && \ bundle install --jobs 30 --retry 5 && \ rm -rf /usr/local/bundle/cache/*.gem && \ find /usr/local/bundle/gems/ -name "*.c" -delete && \ find /usr/local/bundle/gems/ -name "*.o" -delete FROM base as final WORKDIR /app ENV RAILS_ROOT /app ENV RAILS_LOG_TO_STDOUT true ENV RAILS_ENV production ENV BUNDLE_PATH=/usr/local/bundle ## Copy app with gems from former build stage COPY --from=gems /usr/local/bundle /usr/local/bundle ADD . . RUN apk add postgresql-client \ imagemagick \ ffmpeg\ curl \ bash \ && rm -rf /var/cache/apk/* \ && RAILS_ENV=production SECRET_KEY_BASE=_ bundle exec rake DATABASE_URL=nulldb:db_shim assets:precompile && \ rm -rf spec node_modules tmp/cache EXPOSE 3000 CMD bundle exec rake db:migrate && VIA_SERVER=true bundle exec rails s ## without cache # APP=wizewerx/betbeast && TARGET=master && docker build -f ./docker/Dockerfile -t $APP:$TARGET . && docker push $APP:$TARGET # with cache # APP=wizewerx/betbeast && TARGET=master && docker build --cache-from $APP:$TARGET -f ./docker/Dockerfile -t $APP:$TARGET . && docker push $APP:$TARGET # APP=wizewerx/betbeast && TARGET=master docker push $APP:$TARGET