From 9aaec07b371877e283a241bc5e97d8773ceb86d2 Mon Sep 17 00:00:00 2001 From: oznu Date: Fri, 30 Jun 2017 14:12:10 +1000 Subject: [PATCH] Use oznu/s6-alpine base image --- Dockerfile | 88 +++++++++++++++++++++++++++++------------ Dockerfile.raspberry-pi | 36 ++--------------- 2 files changed, 66 insertions(+), 58 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3623769..e999a49 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,29 +1,67 @@ -FROM node:6.11.0-alpine +FROM oznu/s6-alpine -ENV ARCH=amd64 +ENV NPM_CONFIG_LOGLEVEL info +ENV NODE_VERSION 6.11.0 -RUN echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories +RUN addgroup -g 2000 node \ + && adduser -u 2000 -G node -s /bin/sh -D node \ + && apk add --no-cache \ + libstdc++ \ + && apk add --no-cache --virtual .build-deps \ + binutils-gold \ + curl \ + g++ \ + gcc \ + gnupg \ + libgcc \ + linux-headers \ + make \ + python \ + # gpg keys listed at https://github.com/nodejs/node#release-team + && for key in \ + 9554F04D7259F04124DE6B476D5A82AC7E37093B \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + 56730D5401028683275BD23C23EFEFE93C4CFFFE \ + ; do \ + gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ + gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" ; \ + done \ + && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \ + && curl -SLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ + && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ + && tar -xf "node-v$NODE_VERSION.tar.xz" \ + && cd "node-v$NODE_VERSION" \ + && ./configure \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + && apk del .build-deps \ + && cd .. \ + && rm -Rf "node-v$NODE_VERSION" \ + && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt -# s6 overlay -RUN apk add --no-cache curl coreutils tzdata shadow \ - && curl -L -s https://github.com/just-containers/s6-overlay/releases/download/v1.19.1.1/s6-overlay-${ARCH}.tar.gz | tar xvzf - -C / \ - && apk del --no-cache curl +ENV YARN_VERSION 0.24.6 -COPY rootfs / - -# create user -RUN groupmod -g 911 users && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - - # make folders - mkdir -p \ - /app \ - /config \ - /defaults && \ - - # clean up - apk del --purge \ - rm -rf /tmp/* - -ENTRYPOINT [ "/init" ] +RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ + gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" ; \ + done \ + && curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ + && curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ + && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + && mkdir -p /opt/yarn \ + && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \ + && ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \ + && ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \ + && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ + && apk del .build-deps-yarn diff --git a/Dockerfile.raspberry-pi b/Dockerfile.raspberry-pi index a62a012..373570f 100644 --- a/Dockerfile.raspberry-pi +++ b/Dockerfile.raspberry-pi @@ -1,13 +1,10 @@ -FROM arm32v6/alpine:3.6 +FROM oznu/s6-alpine:armhf -ENV ARCH=armhf - -# Build and install node.js ENV NPM_CONFIG_LOGLEVEL info ENV NODE_VERSION 6.11.0 -RUN addgroup -g 1000 node \ - && adduser -u 1000 -G node -s /bin/sh -D node \ +RUN addgroup -g 2000 node \ + && adduser -u 2000 -G node -s /bin/sh -D node \ && apk add --no-cache \ libstdc++ \ && apk add --no-cache --virtual .build-deps \ @@ -68,30 +65,3 @@ RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar \ && ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \ && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ && apk del .build-deps-yarn - -# Add S6 Overlay -RUN echo http://dl-2.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories && \ - apk add --no-cache curl coreutils tzdata shadow \ - && curl -L -s https://github.com/just-containers/s6-overlay/releases/download/v1.19.1.1/s6-overlay-${ARCH}.tar.gz | tar xvzf - -C / \ - && apk del --no-cache curl - -COPY rootfs / - -# Create user -RUN groupmod -g 911 users && \ - useradd -u 911 -U -d /config -s /bin/false abc && \ - usermod -G users abc && \ - - # Make folders - mkdir -p \ - /app \ - /config \ - /defaults && \ - - # Clean up - apk del --purge \ - rm -rf /tmp/* - -ENTRYPOINT [ "/init" ] - -RUN node -v