Current section

Files

Jump to
dockerize priv template Dockerfile.eex
Raw

priv/template/Dockerfile.eex

# - stage 1: generate release
FROM qhwa/elixir-builder:<%= elixir_version %> AS builder
ARG app_vsn
ARG app_revision
ARG mix_env=prod
ARG hex_mirror_url=https://repo.hex.pm
ENV REPLACE_OS_VARS=true \
APP_VSN=${app_vsn} \
NODE_ENV=${mix_env} \
MIX_ENV=${mix_env} \
HEX_MIRROR_URL=${hex_mirror_url} \
APP_REVISION=${app_revision}
WORKDIR /app/src
COPY mix.exs mix.lock /app/src/
RUN elixir -v
RUN mix deps.get --only $MIX_ENV
RUN mix deps.compile
ADD . .
# uncomment following lines to enable digesting in Phoenix project
# RUN npm install --prefix assets
# RUN npm run deploy --prefix assets
# RUN mix phx.digest
RUN mix release --path /app --quiet
RUN cd /app && rm -rf /app/src
# - stage 2: build final runner
FROM qhwa/elixir-runner:<%= elixir_version %>
ARG app_revision=latest
ARG mix_env=prod
ENV REPLACE_OS_VARS=true \
MIX_ENV=${mix_env} \
APP_REVISION=${app_revision}
COPY --from=builder /app /app
WORKDIR /app
ENTRYPOINT ["/app/bin/<%= app %>"]
CMD ["start"]