-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.dummy
More file actions
56 lines (40 loc) · 1.44 KB
/
Dockerfile.dummy
File metadata and controls
56 lines (40 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# For testing/debugging purposes
FROM bitwalker/alpine-elixir-phoenix:latest AS phx-builder
LABEL stage=builder
ARG demopath=demo
ARG libpath=lv_states
# Set exposed ports
ENV MIX_ENV=prod
# Cache elixir deps
ADD $demopath/mix.exs $demopath/mix.lock ./
COPY ./lib ./deps/$libpath/lib
COPY ./mix.exs ./deps/$libpath/
COPY ./mix.lock ./deps/$libpath/
#CMD $libpath && mix local.hex --force
#CMD cd /$libpath && mix deps.get
#COPY ./deps ./$libpath/deps
RUN mix do deps.get, deps.compile
#RUN mix do deps.compile
# Same with npm deps
COPY $demopath/assets/package.json $demopath/assets/package-lock.json ./assets/
RUN npm --prefix ./assets ci --progress=false --no-audit --loglevel=error
ADD ./$demopath .
RUN npm run --prefix ./assets deploy
RUN mix do compile, phx.digest
FROM bitwalker/alpine-elixir:latest
ARG DOCKER_DEBUG
EXPOSE 4000
ENV PORT=4000 MIX_ENV=prod
ENV DOCKER_DEBUG=$DOCKER_DEBUG
COPY --from=phx-builder /opt/app/_build /opt/app/_build
COPY --from=phx-builder /opt/app/priv /opt/app/priv
COPY --from=phx-builder /opt/app/config /opt/app/config
COPY --from=phx-builder /opt/app/lib /opt/app/lib
COPY --from=phx-builder /opt/app/deps /opt/app/deps
#COPY --from=phx-builder /opt/app/.mix /opt/app/.mix
COPY --from=phx-builder /opt/app/mix.* /opt/app/
# alternatively you can just copy the whole dir over with:
#COPY --from=phx-builder /opt/app /opt/app
# be warned, this will however copy over non-build files
USER default
CMD ["mix", "phx.server"]