Created
November 2, 2016 00:07
-
-
Save aaronjensen/b3a18ca25a1175a4413cb6c8a32fc213 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM erlang:19.1-slim | |
ENV GOSU_VERSION 1.9 | |
RUN set -x \ | |
&& apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \ | |
&& dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ | |
&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ | |
&& wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \ | |
&& export GNUPGHOME="$(mktemp -d)" \ | |
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ | |
&& gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ | |
&& rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \ | |
&& chmod +x /usr/local/bin/gosu \ | |
&& gosu nobody true \ | |
&& apt-get purge -y --auto-remove ca-certificates wget | |
ENV ELIXIR_VERSION="v1.3.4" \ | |
LANG=C.UTF-8 | |
RUN set -xe \ | |
&& apt-get update \ | |
&& apt-get install -y --no-install-recommends \ | |
autoconf \ | |
automake \ | |
bzip2 \ | |
ca-certificates \ | |
curl \ | |
file \ | |
g++ \ | |
gcc \ | |
git \ | |
libelf1 \ | |
libfontconfig \ | |
make \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Generate the elixir sha by downloading the file and running shasum: | |
# wget https://github.com/elixir-lang/elixir/archive/<version>.tar.gz | |
# shasum -a 256 <version>.tar.gz | |
RUN set -xe \ | |
&& ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION#*@}.tar.gz" \ | |
&& ELIXIR_DOWNLOAD_SHA256="f5ee5353d8dbe610b1dfd276d22f2038d57d9a7d3cea69dac10da2b098bd2033" \ | |
&& curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \ | |
&& echo "$ELIXIR_DOWNLOAD_SHA256 elixir-src.tar.gz" | sha256sum -c - \ | |
&& mkdir -p /usr/src/elixir-src \ | |
&& tar -xzf elixir-src.tar.gz -C /usr/src/elixir-src --strip-components=1 \ | |
&& rm elixir-src.tar.gz \ | |
&& cd /usr/src/elixir-src \ | |
&& make -j$(nproc) \ | |
&& make install | |
# gpg keys listed at https://github.com/nodejs/node | |
RUN set -ex \ | |
&& for key in \ | |
9554F04D7259F04124DE6B476D5A82AC7E37093B \ | |
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ | |
0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \ | |
FD3A5288F042B6850C66B31F09FE44734EB7990E \ | |
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ | |
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ | |
B9AE9905FFD7803F25714661B63B535A4C206CA9 \ | |
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ | |
; do \ | |
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ | |
done | |
ENV NODE_VERSION 6.5.0 | |
RUN buildDeps='\ | |
xz-utils' \ | |
&& set -x \ | |
&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \ | |
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ | |
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ | |
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ | |
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \ | |
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ | |
&& apt-get purge -y --auto-remove $buildDeps | |
# Install yarn | |
RUN set -xe \ | |
&& apt-key adv --keyserver pgp.mit.edu --recv D101F7899D41F3C3\ | |
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ | |
&& apt-get update && apt-get install -y yarn --no-install-recommends | |
# Enable unsafe-perm so npm doesn't override our TMPDIR like a fool | |
# https://github.com/npm/npm/issues/13325 | |
RUN npm config set unsafe-perm true | |
COPY entrypoint.sh /usr/local/bin/entrypoint.sh | |
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] | |
CMD ["iex"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment