From 0a4bdd936765b3821156727ee334c412b122c8ef Mon Sep 17 00:00:00 2001 From: Jamil Bou Kheir Date: Mon, 12 Jul 2021 12:05:18 -0700 Subject: [PATCH] D'oh file --- .gitignore | 5 ++-- pkg/Dockerfile.deb | 71 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 pkg/Dockerfile.deb diff --git a/.gitignore b/.gitignore index aba4a465e..8891002e4 100644 --- a/.gitignore +++ b/.gitignore @@ -47,8 +47,9 @@ npm-debug.log # Development environment configuration .env -# Built debian packages -*.deb +# Built packages +/*.deb +/*.rpm pkg/debian/opt diff --git a/pkg/Dockerfile.deb b/pkg/Dockerfile.deb new file mode 100644 index 000000000..42a08d1c8 --- /dev/null +++ b/pkg/Dockerfile.deb @@ -0,0 +1,71 @@ +ARG BASE_IMAGE +FROM ${BASE_IMAGE} + +# Overridden by build script +ARG PKG_DIR + +# Setup to run build script +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update -q && \ + apt-get install -y --no-install-recommends \ + lintian \ + rsync \ + gdebi \ + ca-certificates \ + build-essential \ + git \ + dpkg-dev \ + libssl-dev \ + automake \ + gnupg \ + curl \ + autoconf \ + libncurses5-dev \ + unzip \ + zlib1g-dev \ + locales && \ + apt-get clean && \ + rm -rf /tmp/* /var/tmp/* +RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \ + locale-gen +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 + +RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - +RUN apt-get install -y --no-install-recommends nodejs + +ENV MIX_ENV prod +WORKDIR /build + +# 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 . . +RUN mix release + + +# PACKAGING + +# Copy shared files +RUN rsync -avz pkg/debian_shared/* pkg/$PKG_DIR/ + +RUN mkdir -p pkg/$PKG_DIR/etc/firezone +RUN mkdir -p pkg/$PKG_DIR/usr/bin +RUN mkdir -p pkg/$PKG_DIR/usr/lib/firezone +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