36 lines
1.4 KiB
Docker
36 lines
1.4 KiB
Docker
# syntax=docker/dockerfile:1.4
|
|
# Fast app image — gems come from deps base (custom/dalan-deps:1).
|
|
# Rebuild deps when Gemfile.lock changes: docker build -f Dockerfile.deps -t custom/dalan-deps:1 .
|
|
ARG DEPS_IMAGE=custom/dalan-deps:1
|
|
FROM ${DEPS_IMAGE}
|
|
|
|
ARG MAXMINDDB_LINK
|
|
ARG MAXMINDDB_LICENSE_KEY=T6ElPBlyOOuCyjzw
|
|
ENV MAXMINDDB_LINK=${MAXMINDDB_LINK:-https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&suffix=tar.gz&license_key=${MAXMINDDB_LICENSE_KEY}} \
|
|
RAILS_ENV=production \
|
|
APP_HOME=/home/app
|
|
|
|
USER app
|
|
WORKDIR $APP_HOME
|
|
|
|
COPY --chown=app:app . .
|
|
|
|
RUN mkdir -p ${APP_HOME}/geolite \
|
|
&& (wget -qO ${APP_HOME}/geolite.tar.gz "${MAXMINDDB_LINK}" \
|
|
&& tar xzf ${APP_HOME}/geolite.tar.gz -C ${APP_HOME}/geolite --strip-components 1 \
|
|
&& rm ${APP_HOME}/geolite.tar.gz \
|
|
|| echo "GeoLite download skipped — using placeholder") \
|
|
&& test -f ${APP_HOME}/geolite/GeoLite2-Country.mmdb || touch ${APP_HOME}/geolite/GeoLite2-Country.mmdb
|
|
|
|
ENV BARONG_MAXMINDDB_PATH=${APP_HOME}/geolite/GeoLite2-Country.mmdb
|
|
|
|
RUN curl -fsSL https://www.cloudflare.com/ips-v4 >> ${APP_HOME}/config/cloudflare_ips.yml \
|
|
&& echo "" >> ${APP_HOME}/config/cloudflare_ips.yml \
|
|
&& curl -fsSL https://www.cloudflare.com/ips-v6 >> ${APP_HOME}/config/cloudflare_ips.yml
|
|
|
|
RUN ruby ./bin/init_config \
|
|
&& bundle exec rake tmp:create
|
|
|
|
EXPOSE 8080
|
|
CMD ["bundle", "exec", "puma", "--config", "config/puma.rb"]
|