mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
* Test docker prod build in CI * Need uses * Set build-args * Split builds * Fix build-args format * wtf * hmmm * Jeebus * build version based on drafted release * Build multi-platform images * Only build for supported platforms * Use newer OTP fingers crossed * Use OTP 24 for arm64 * Finalize test build of Docker image * Update comment * Bump to OTP 25.1 * Use proper ver * D'oh proper sha * Use OTP 24 and install python for node build * Use new Docker base * Use python3 * Use newly-built base images with other platform support * Don't build for ppc64le and s390x * Build only for amd64/arm64 * Don't rebuild on publish; simply copy * See where the image is being pushed * Remove echo * Add docker updates * Match platforms from base image * Use docker-compose over docker compose * Use our own base * we need python3 * use consistent service name * trim trailing slash from external_url * Build for latest tag in staging
56 lines
1.4 KiB
Docker
56 lines
1.4 KiB
Docker
# This Dockerfile builds a development image to use for local development work
|
|
|
|
FROM firezone/elixir:1.14.0-otp-25.1
|
|
|
|
# Install dev dependencies / convenience tools
|
|
RUN apk add \
|
|
nodejs \
|
|
npm \
|
|
build-base \
|
|
git \
|
|
python3 \
|
|
curl \
|
|
net-tools \
|
|
iproute2 \
|
|
nftables \
|
|
inotify-tools \
|
|
ca-certificates \
|
|
sudo \
|
|
nodejs
|
|
|
|
WORKDIR /var/app
|
|
|
|
ARG GIT_SHA=DEV
|
|
ARG MIX_ENV=dev
|
|
ARG DATABASE_URL
|
|
|
|
ENV GIT_SHA=$GIT_SHA
|
|
ENV MIX_ENV=$MIX_ENV
|
|
ENV DATABASE_URL=$DATABASE_URL
|
|
|
|
RUN mix local.hex --force && mix local.rebar --force
|
|
|
|
# Copy more granular, dependency management files first to prevent
|
|
# busting the Docker build cache unnecessarily
|
|
COPY apps/fz_http/assets/package.json /var/app/apps/fz_http/assets/package.json
|
|
COPY apps/fz_http/assets/package-lock.json /var/app/apps/fz_http/assets/package-lock.json
|
|
RUN npm install --prefix apps/fz_http/assets
|
|
|
|
COPY apps/fz_common/mix.exs /var/app/apps/fz_common/mix.exs
|
|
COPY apps/fz_http/mix.exs /var/app/apps/fz_http/mix.exs
|
|
COPY apps/fz_vpn/mix.exs /var/app/apps/fz_vpn/mix.exs
|
|
COPY apps/fz_wall/mix.exs /var/app/apps/fz_wall/mix.exs
|
|
COPY mix.exs /var/app/mix.exs
|
|
COPY mix.lock /var/app/mix.lock
|
|
RUN mix do deps.get --only dev, deps.compile --only dev, compile --only dev
|
|
RUN mix do deps.get --only test, deps.compile --only test, compile --only test
|
|
|
|
COPY apps /var/app/apps
|
|
COPY config /var/app/config
|
|
|
|
COPY scripts/dev_start.sh /var/app/dev_start.sh
|
|
|
|
EXPOSE 4000 51820/udp
|
|
|
|
CMD ["/var/app/dev_start.sh"]
|