57 lines
2 KiB
Docker
57 lines
2 KiB
Docker
FROM balenalib/%%BALENA_MACHINE_NAME%%-debian:buster as build
|
|
|
|
ENV ERLANG_VERSION 22.1
|
|
ENV ERLANG_HASH 7b26f64eb6c712968d8477759fc716d64701d41f6325e8a4d0dd9c31de77284a
|
|
ENV ELIXIR_VERSION 1.9.1
|
|
ENV ELIXIR_HASH 94daa716abbd4493405fb2032514195077ac7bc73dc2999922f13c7d8ea58777
|
|
|
|
RUN set -x \
|
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-key 8B48AD6246925553 \
|
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-key 7638D0442B90D010 \
|
|
&& apt-get -q update \
|
|
&& apt-get install -y --no-install-recommends autoconf build-essential ca-certificates curl python dpkg-dev g++ gcc git-core libc6-dev libncurses-dev libsctp-dev libssl-dev make mercurial python-dev python-pip unixodbc-dev wget \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN set -x \
|
|
&& ERLANG_DOWNLOAD_URL="https://github.com/erlang/otp/archive/OTP-${ERLANG_VERSION}.tar.gz" \
|
|
&& ERLANG_ARCHIVE="OTP-$ERLANG_VERSION.tar.gz" \
|
|
&& curl -fSL -o $ERLANG_ARCHIVE "$ERLANG_DOWNLOAD_URL" \
|
|
&& echo "$ERLANG_HASH $ERLANG_ARCHIVE" | sha256sum -c - \
|
|
&& ERL_TOP=/erlang-src \
|
|
&& mkdir -vp $ERL_TOP \
|
|
&& tar -xzf $ERLANG_ARCHIVE -C $ERL_TOP --strip-components=1 \
|
|
&& rm $ERLANG_ARCHIVE \
|
|
&& ( \
|
|
cd $ERL_TOP \
|
|
&& ./otp_build autoconf \
|
|
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
|
&& ./configure --build="$gnuArch" \
|
|
&& make \
|
|
&& make install \
|
|
)
|
|
|
|
RUN set -x \
|
|
&& ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/v${ELIXIR_VERSION}.tar.gz" \
|
|
&& curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \
|
|
&& echo "$ELIXIR_HASH elixir-src.tar.gz" | sha256sum -c - \
|
|
&& mkdir /elixir-src \
|
|
&& tar -xzC /elixir-src --strip-components=1 -f elixir-src.tar.gz \
|
|
&& rm elixir-src.tar.gz \
|
|
&& (cd /elixir-src && make install) \
|
|
&& rm -rf /elixir-src
|
|
|
|
RUN mix local.hex --force
|
|
RUN mix local.rebar --force
|
|
|
|
ENV ERL_CRASH_DUMP_BYTES=0
|
|
|
|
RUN mkdir /app
|
|
WORKDIR /app
|
|
|
|
COPY mix.exs mix.lock /app/
|
|
RUN mix deps.get
|
|
RUN mix deps.compile
|
|
|
|
COPY . /app/
|
|
CMD mix run --no-halt
|