This repository has been archived on 2024-06-24. You can view files and clone it, but cannot push or open issues or pull requests.
balena-device/Dockerfile.template
2019-10-20 07:24:11 +08:00

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