42 lines
1.3 KiB
Docker
42 lines
1.3 KiB
Docker
FROM registry.gitlab.com/jimsy/balena-elixir/%%BALENA_ARCH%%-alpine:1.9 as elixir
|
|
RUN install_packages \
|
|
autoconf build-base ca-certificates coreutils curl dpkg dpkg-dev g++ gcc git \
|
|
libc-dev linux-headers lksctp-tools lksctp-tools-dev make musl-dev \
|
|
ncurses-dev openssl openssl-dev perl-dev tar unixodbc-dev wget zlib-dev
|
|
RUN mix local.hex --force
|
|
RUN mix local.rebar --force
|
|
ENV MIX_ENV=prod
|
|
|
|
FROM elixir as deps
|
|
COPY mix.exs mix.lock /app/
|
|
WORKDIR /app
|
|
RUN mix deps.get
|
|
RUN mix deps.compile
|
|
|
|
FROM balenalib/%%BALENA_MACHINE_NAME%%-debian-node:latest-build as assets
|
|
COPY --from=deps /app/deps/phoenix /app/deps/phoenix
|
|
COPY --from=deps /app/deps/phoenix_html /app/deps/phoenix_html
|
|
COPY --from=deps /app/deps/phoenix_live_view /app/deps/phoenix_live_view
|
|
COPY assets /app/assets
|
|
WORKDIR /app/assets
|
|
RUN yarn install --ignore-optional --non-interactive
|
|
RUN yarn run deploy
|
|
|
|
FROM elixir as releaser
|
|
COPY --from=deps /app /app
|
|
COPY config /app/config
|
|
COPY lib /app/lib
|
|
COPY priv /app/priv
|
|
COPY rel /app/rel
|
|
COPY --from=assets /app/priv/static /app/priv/static
|
|
WORKDIR /app
|
|
ENV SECRET_KEY_BASE=not-actually-used-at-runtime
|
|
RUN mix phx.digest
|
|
RUN mix release --overwrite
|
|
|
|
FROM balenalib/%%BALENA_MACHINE_NAME%%-alpine
|
|
RUN install_packages raspberrypi
|
|
ENV ERL_CRASH_DUMP_BYTES=0
|
|
COPY --from=releaser /app/_build/prod/rel/augie /app
|
|
WORKDIR /app
|
|
CMD /app/bin/augie start
|