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