Files
firezone/pkg/Dockerfile.deb
2021-07-13 06:33:27 -07:00

39 lines
1.2 KiB
Docker

ARG BASE_IMAGE
ARG PLATFORM
FROM --platform=${PLATFORM} ${BASE_IMAGE}
ARG PKG_DIR
ENV MIX_ENV prod
# Dockerfile-friendly build release
RUN mix local.hex --force && \
mix local.rebar --force
COPY mix.exs mix.lock ./
COPY config config
COPY apps/fz_http/mix.exs ./apps/fz_http/
COPY apps/fz_wall/mix.exs ./apps/fz_wall/
COPY apps/fz_vpn/mix.exs ./apps/fz_vpn/
COPY apps/fz_common/mix.exs ./apps/fz_common/
RUN mix do deps.get, deps.compile
COPY apps/fz_http/assets/package.json apps/fz_http/assets/package-lock.json ./apps/fz_http/assets/
RUN cd apps/fz_http/assets && npm ci --progress=false --no-audit --loglevel=error
COPY apps/fz_http/priv apps/fz_http/priv
COPY apps/fz_http/assets apps/fz_http/assets
RUN npm run --prefix ./apps/fz_http/assets deploy && \
cd apps/fz_http && mix phx.digest
# Copy remaining items for release
COPY rel rel
COPY deps deps
COPY config config
COPY apps apps
RUN mix release
# PACKAGING
# Copy shared files
COPY pkg pkg
RUN rsync -avz pkg/skel/* pkg/$PKG_DIR/
RUN rsync -avz _build/prod/rel/firezone/* pkg/$PKG_DIR/usr/lib/firezone/
RUN cd pkg/$PKG_DIR/usr/bin && ln -s ../lib/firezone/bin/firezone
RUN cd pkg && dpkg-deb --build $PKG_DIR