50 lines
1,014 B
Docker
50 lines
1,014 B
Docker
FROM elixir:1.10.4-alpine AS elixir1
|
|
|
|
RUN apk add make gcc libc-dev
|
|
|
|
ENV CC=gcc
|
|
ENV MIX_HOME=/opt/mix
|
|
|
|
RUN mix local.hex --force \
|
|
&& mix local.rebar --force
|
|
|
|
EXPOSE 4000
|
|
|
|
ARG MIX_ENV=prod
|
|
RUN echo ${MIX_ENV}
|
|
ENV MIX_ENV=$MIX_ENV
|
|
ENV PORT=4000
|
|
|
|
WORKDIR /root/app
|
|
|
|
ADD ./config /root/app/config
|
|
ADD ./mix.exs /root/app/
|
|
ADD ./mix.lock /root/app/
|
|
ADD ./apps/admin/mix.exs /root/app/apps/admin/
|
|
ADD ./apps/app/mix.exs /root/app/apps/app/
|
|
ADD ./apps/content/mix.exs /root/app/apps/content/
|
|
ADD ./apps/core/mix.exs /root/app/apps/core/
|
|
ADD ./deps /root/app/deps
|
|
RUN mix deps.get
|
|
RUN mix deps.compile
|
|
|
|
ADD ./script /root/app/script
|
|
ADD ./apps /root/app/apps
|
|
|
|
RUN MAKE=cmake mix compile
|
|
|
|
FROM node:15.0
|
|
|
|
WORKDIR /root/app/apps/app/assets/
|
|
ADD ./apps/app/assets/node_modules /root/app/apps/assets/node_modules
|
|
COPY --from=0 /root/app/ /root/app/
|
|
RUN npm install
|
|
RUN npm run deploy
|
|
|
|
FROM elixir1
|
|
|
|
COPY --from=1 /root/app/apps/app/priv/static/ /root/app/apps/app/priv/static
|
|
|
|
RUN mix phx.digest
|
|
|
|
CMD ["mix", "phx.server"]
|