From e77b48bb75a26dfae04d8159071466eb4f378bf4 Mon Sep 17 00:00:00 2001 From: Muhammad Rafif Elfazri <rafif.elfazri@gmail.com> Date: Mon, 15 Feb 2021 15:14:49 +0700 Subject: [PATCH] Create DockerFile for building diskuy image backend --- Dockerfile | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7bdd472 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,59 @@ +# File: docker_phx/Dockerfile +FROM elixir:1.9-alpine as build + +# install build dependencies +RUN apk add --update git build-base nodejs npm yarn python + +RUN mkdir /app +WORKDIR /app + +# install Hex + Rebar +RUN mix do local.hex --force, local.rebar --force + +# set build ENV +ENV MIX_ENV=prod + +# install mix dependencies +COPY mix.exs mix.lock ./ +COPY config config +RUN mix deps.get --only $MIX_ENV +RUN mix deps.compile + +# build assets +# COPY assets assets +# RUN cd assets && npm install && npm run deploy +# RUN mix phx.digest + +# build project +COPY priv priv +COPY lib lib +RUN mix compile + +# build release +# at this point we should copy the rel directory but +# we are not using it so we can omit it +# COPY rel rel +RUN mix release + +# prepare release image +FROM alpine:3.9 AS app + +# install runtime dependencies +RUN apk add --update bash openssl postgresql-client + +EXPOSE 4000 +ENV MIX_ENV=prod + +# prepare app directory +RUN mkdir /app +WORKDIR /app + + +# copy release to app container +COPY --from=build /app/_build/prod/rel/docker_phx . +COPY entrypoint.sh . +RUN chown -R nobody: /app +USER nobody + +ENV HOME=/app +CMD ["bash", "/app/entrypoint.sh"] \ No newline at end of file -- GitLab