Files
firezone/Dockerfile.dev
Jamil 49d4040b60 Add version tag to migrate script (#1400)
* Add new `VERSION` to `docker_migrate.sh` script
* Add missing `SAML_KEYFILE_PATH` and `SAML_CERTFILE_PATH` env vars to
migrate script
* Add missing `PHOENIX_PORT` var
* Bump Elixir to 1.14.3
* Bump Erlang to 25.2.1
* Update docs to document new VERSION var in docker-compose.yml upgrade
mechanism

Fixes #1395
2023-02-01 19:38:55 -08:00

56 lines
1.4 KiB
Docker

# This Dockerfile builds a development image to use for local development work
FROM firezone/elixir:1.14.3-otp-25.2.1
# Install dev dependencies / convenience tools
RUN apk add \
yarn \
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 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, deps.compile, compile
# 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/local_modules /var/app/apps/fz_http/assets/local_modules
COPY apps/fz_http/assets/yarn.lock /var/app/apps/fz_http/assets/yarn.lock
RUN cd apps/fz_http/assets && yarn install
COPY config /var/app/config
COPY apps /var/app/apps
RUN cd apps/fz_http && mix phx.gen.cert
COPY scripts/dev_start.sh /var/app/dev_start.sh
EXPOSE 51820/udp
CMD ["/var/app/dev_start.sh"]