├── .travis.yml ├── 6.11 ├── Dockerfile ├── alpine │ └── Dockerfile ├── onbuild │ └── Dockerfile └── slim │ └── Dockerfile ├── 8.1 ├── Dockerfile ├── alpine │ └── Dockerfile ├── onbuild │ └── Dockerfile └── slim │ └── Dockerfile ├── LICENSE ├── README.md ├── build.sh ├── push.sh ├── test.sh └── update.sh /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | services: 3 | - docker 4 | language: bash 5 | env: 6 | - VERSION=6.11 7 | - VERSION=8.1 8 | script: 9 | # prepare qemu 10 | - docker run --rm --privileged multiarch/qemu-user-static:register --reset 11 | # build image 12 | - ./build.sh $VERSION 13 | # test image 14 | - ./test.sh $VERSION 15 | # push image 16 | - > 17 | if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then 18 | docker login -u="$DOCKER_USER" -p="$DOCKER_PASS" 19 | ./push.sh $VERSION 20 | fi 21 | -------------------------------------------------------------------------------- /6.11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM resin/rpi-raspbian:jessie 2 | 3 | # Install common build dependencies 4 | RUN apt-get update && apt-get install -y --no-install-recommends \ 5 | ca-certificates \ 6 | curl \ 7 | wget \ 8 | bzr \ 9 | git \ 10 | mercurial \ 11 | openssh-client \ 12 | subversion \ 13 | procps \ 14 | autoconf \ 15 | automake \ 16 | bzip2 \ 17 | file \ 18 | g++ \ 19 | gcc \ 20 | imagemagick \ 21 | libbz2-dev \ 22 | libc6-dev \ 23 | libcurl4-openssl-dev \ 24 | libevent-dev \ 25 | libffi-dev \ 26 | libgeoip-dev \ 27 | libglib2.0-dev \ 28 | libjpeg-dev \ 29 | liblzma-dev \ 30 | libmagickcore-dev \ 31 | libmagickwand-dev \ 32 | libmysqlclient-dev \ 33 | libncurses-dev \ 34 | libpng-dev \ 35 | libpq-dev \ 36 | libreadline-dev \ 37 | libsqlite3-dev \ 38 | libssl-dev \ 39 | libtool \ 40 | libwebp-dev \ 41 | libxml2-dev \ 42 | libxslt-dev \ 43 | libyaml-dev \ 44 | make \ 45 | patch \ 46 | xz-utils \ 47 | zlib1g-dev \ 48 | && rm -rf /var/lib/apt/lists/* \ 49 | && apt-get clean 50 | 51 | # gpg keys listed at https://github.com/nodejs/node 52 | RUN set -ex \ 53 | && for key in \ 54 | 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 55 | 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 56 | FD3A5288F042B6850C66B31F09FE44734EB7990E \ 57 | 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 58 | DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 59 | B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 60 | C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 61 | 56730D5401028683275BD23C23EFEFE93C4CFFFE \ 62 | ; do \ 63 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ 64 | done 65 | 66 | ENV NPM_CONFIG_LOGLEVEL info 67 | ENV NODE_VERSION 6.11.0 68 | 69 | RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv6l.tar.gz" \ 70 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 71 | && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ 72 | && grep " node-v$NODE_VERSION-linux-armv6l.tar.gz\$" SHASUMS256.txt | sha256sum -c - \ 73 | && tar -xzf "node-v$NODE_VERSION-linux-armv6l.tar.gz" -C /usr/local --strip-components=1 \ 74 | && rm "node-v$NODE_VERSION-linux-armv6l.tar.gz" SHASUMS256.txt SHASUMS256.txt.asc 75 | 76 | ENV YARN_VERSION 0.24.6 77 | 78 | RUN set -ex \ 79 | && for key in \ 80 | 6A010C5166006599AA17F08146C2130DFD2497F5 \ 81 | ; do \ 82 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 83 | gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ 84 | gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \ 85 | done \ 86 | && curl -fSL -o yarn.js "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js" \ 87 | && curl -fSL -o yarn.js.asc "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js.asc" \ 88 | && gpg --batch --verify yarn.js.asc yarn.js \ 89 | && rm yarn.js.asc \ 90 | && mv yarn.js /usr/local/bin/yarn \ 91 | && chmod +x /usr/local/bin/yarn 92 | 93 | CMD [ "node" ] 94 | -------------------------------------------------------------------------------- /6.11/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM hypriot/rpi-alpine:3.5 2 | 3 | ENV NPM_CONFIG_LOGLEVEL info 4 | ENV NODE_VERSION 6.11.0 5 | 6 | RUN adduser -D -u 1000 node \ 7 | && apk add --no-cache \ 8 | libstdc++ \ 9 | && apk add --no-cache --virtual .build-deps \ 10 | binutils-gold \ 11 | curl \ 12 | g++ \ 13 | gcc \ 14 | gnupg \ 15 | libgcc \ 16 | linux-headers \ 17 | make \ 18 | python \ 19 | && for key in \ 20 | 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 21 | 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 22 | FD3A5288F042B6850C66B31F09FE44734EB7990E \ 23 | 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 24 | DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 25 | B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 26 | C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 27 | 56730D5401028683275BD23C23EFEFE93C4CFFFE \ 28 | ; do \ 29 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ 30 | done \ 31 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \ 32 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 33 | && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ 34 | && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ 35 | && tar -xf "node-v$NODE_VERSION.tar.xz" \ 36 | && cd "node-v$NODE_VERSION" \ 37 | && ./configure \ 38 | && make -j$(getconf _NPROCESSORS_ONLN) \ 39 | && make install \ 40 | && apk del .build-deps \ 41 | && cd .. \ 42 | && rm -Rf "node-v$NODE_VERSION" \ 43 | && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt 44 | 45 | ENV YARN_VERSION 0.24.6 46 | 47 | RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg \ 48 | && for key in \ 49 | 6A010C5166006599AA17F08146C2130DFD2497F5 \ 50 | ; do \ 51 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 52 | gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ 53 | gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \ 54 | done \ 55 | && curl -fSL -o yarn.js "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js" \ 56 | && curl -fSL -o yarn.js.asc "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js.asc" \ 57 | && gpg --batch --verify yarn.js.asc yarn.js \ 58 | && rm yarn.js.asc \ 59 | && mv yarn.js /usr/local/bin/yarn \ 60 | && chmod +x /usr/local/bin/yarn \ 61 | && apk del .build-deps-yarn 62 | 63 | CMD [ "node" ] 64 | -------------------------------------------------------------------------------- /6.11/onbuild/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM hypriot/rpi-node:6.11.0 2 | 3 | RUN mkdir -p /usr/src/app 4 | WORKDIR /usr/src/app 5 | 6 | ONBUILD COPY package.json /usr/src/app/ 7 | ONBUILD RUN npm install 8 | ONBUILD COPY . /usr/src/app 9 | 10 | CMD [ "npm", "start" ] 11 | -------------------------------------------------------------------------------- /6.11/slim/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM resin/rpi-raspbian:jessie 2 | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ 4 | ca-certificates \ 5 | curl \ 6 | wget \ 7 | && rm -rf /var/lib/apt/lists/* \ 8 | && apt-get clean 9 | 10 | # gpg keys listed at https://github.com/nodejs/node 11 | RUN set -ex \ 12 | && for key in \ 13 | 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 14 | 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 15 | FD3A5288F042B6850C66B31F09FE44734EB7990E \ 16 | 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 17 | DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 18 | B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 19 | C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 20 | 56730D5401028683275BD23C23EFEFE93C4CFFFE \ 21 | ; do \ 22 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ 23 | done 24 | 25 | ENV NPM_CONFIG_LOGLEVEL info 26 | ENV NODE_VERSION 6.11.0 27 | 28 | RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv6l.tar.gz" \ 29 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 30 | && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ 31 | && grep " node-v$NODE_VERSION-linux-armv6l.tar.gz\$" SHASUMS256.txt | sha256sum -c - \ 32 | && tar -xzf "node-v$NODE_VERSION-linux-armv6l.tar.gz" -C /usr/local --strip-components=1 \ 33 | && rm "node-v$NODE_VERSION-linux-armv6l.tar.gz" SHASUMS256.txt SHASUMS256.txt.asc 34 | 35 | ENV YARN_VERSION 0.24.6 36 | 37 | RUN set -ex \ 38 | && for key in \ 39 | 6A010C5166006599AA17F08146C2130DFD2497F5 \ 40 | ; do \ 41 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 42 | gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ 43 | gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \ 44 | done \ 45 | && curl -fSL -o yarn.js "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js" \ 46 | && curl -fSL -o yarn.js.asc "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js.asc" \ 47 | && gpg --batch --verify yarn.js.asc yarn.js \ 48 | && rm yarn.js.asc \ 49 | && mv yarn.js /usr/local/bin/yarn \ 50 | && chmod +x /usr/local/bin/yarn 51 | 52 | CMD [ "node" ] 53 | -------------------------------------------------------------------------------- /8.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM resin/rpi-raspbian:jessie 2 | 3 | # Install common build dependencies 4 | RUN apt-get update && apt-get install -y --no-install-recommends \ 5 | ca-certificates \ 6 | curl \ 7 | wget \ 8 | bzr \ 9 | git \ 10 | mercurial \ 11 | openssh-client \ 12 | subversion \ 13 | procps \ 14 | autoconf \ 15 | automake \ 16 | bzip2 \ 17 | file \ 18 | g++ \ 19 | gcc \ 20 | imagemagick \ 21 | libbz2-dev \ 22 | libc6-dev \ 23 | libcurl4-openssl-dev \ 24 | libevent-dev \ 25 | libffi-dev \ 26 | libgeoip-dev \ 27 | libglib2.0-dev \ 28 | libjpeg-dev \ 29 | liblzma-dev \ 30 | libmagickcore-dev \ 31 | libmagickwand-dev \ 32 | libmysqlclient-dev \ 33 | libncurses-dev \ 34 | libpng-dev \ 35 | libpq-dev \ 36 | libreadline-dev \ 37 | libsqlite3-dev \ 38 | libssl-dev \ 39 | libtool \ 40 | libwebp-dev \ 41 | libxml2-dev \ 42 | libxslt-dev \ 43 | libyaml-dev \ 44 | make \ 45 | patch \ 46 | xz-utils \ 47 | zlib1g-dev \ 48 | && rm -rf /var/lib/apt/lists/* \ 49 | && apt-get clean 50 | 51 | # gpg keys listed at https://github.com/nodejs/node 52 | RUN set -ex \ 53 | && for key in \ 54 | 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 55 | 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 56 | FD3A5288F042B6850C66B31F09FE44734EB7990E \ 57 | 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 58 | DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 59 | B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 60 | C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 61 | 56730D5401028683275BD23C23EFEFE93C4CFFFE \ 62 | ; do \ 63 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ 64 | done 65 | 66 | ENV NPM_CONFIG_LOGLEVEL info 67 | ENV NODE_VERSION 8.1.3 68 | 69 | RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv6l.tar.gz" \ 70 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 71 | && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ 72 | && grep " node-v$NODE_VERSION-linux-armv6l.tar.gz\$" SHASUMS256.txt | sha256sum -c - \ 73 | && tar -xzf "node-v$NODE_VERSION-linux-armv6l.tar.gz" -C /usr/local --strip-components=1 \ 74 | && rm "node-v$NODE_VERSION-linux-armv6l.tar.gz" SHASUMS256.txt SHASUMS256.txt.asc 75 | 76 | ENV YARN_VERSION 0.24.6 77 | 78 | RUN set -ex \ 79 | && for key in \ 80 | 6A010C5166006599AA17F08146C2130DFD2497F5 \ 81 | ; do \ 82 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 83 | gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ 84 | gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \ 85 | done \ 86 | && curl -fSL -o yarn.js "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js" \ 87 | && curl -fSL -o yarn.js.asc "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js.asc" \ 88 | && gpg --batch --verify yarn.js.asc yarn.js \ 89 | && rm yarn.js.asc \ 90 | && mv yarn.js /usr/local/bin/yarn \ 91 | && chmod +x /usr/local/bin/yarn 92 | 93 | CMD [ "node" ] 94 | -------------------------------------------------------------------------------- /8.1/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM hypriot/rpi-alpine:3.5 2 | 3 | ENV NPM_CONFIG_LOGLEVEL info 4 | ENV NODE_VERSION 8.1.3 5 | 6 | RUN adduser -D -u 1000 node \ 7 | && apk add --no-cache \ 8 | libstdc++ \ 9 | && apk add --no-cache --virtual .build-deps \ 10 | binutils-gold \ 11 | curl \ 12 | g++ \ 13 | gcc \ 14 | gnupg \ 15 | libgcc \ 16 | linux-headers \ 17 | make \ 18 | python \ 19 | && for key in \ 20 | 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 21 | 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 22 | FD3A5288F042B6850C66B31F09FE44734EB7990E \ 23 | 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 24 | DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 25 | B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 26 | C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 27 | 56730D5401028683275BD23C23EFEFE93C4CFFFE \ 28 | ; do \ 29 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ 30 | done \ 31 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" \ 32 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 33 | && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ 34 | && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ 35 | && tar -xf "node-v$NODE_VERSION.tar.xz" \ 36 | && cd "node-v$NODE_VERSION" \ 37 | && ./configure \ 38 | && make -j$(getconf _NPROCESSORS_ONLN) \ 39 | && make install \ 40 | && apk del .build-deps \ 41 | && cd .. \ 42 | && rm -Rf "node-v$NODE_VERSION" \ 43 | && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt 44 | 45 | ENV YARN_VERSION 0.24.6 46 | 47 | RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg \ 48 | && for key in \ 49 | 6A010C5166006599AA17F08146C2130DFD2497F5 \ 50 | ; do \ 51 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 52 | gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ 53 | gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \ 54 | done \ 55 | && curl -fSL -o yarn.js "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js" \ 56 | && curl -fSL -o yarn.js.asc "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js.asc" \ 57 | && gpg --batch --verify yarn.js.asc yarn.js \ 58 | && rm yarn.js.asc \ 59 | && mv yarn.js /usr/local/bin/yarn \ 60 | && chmod +x /usr/local/bin/yarn \ 61 | && apk del .build-deps-yarn 62 | 63 | CMD [ "node" ] 64 | -------------------------------------------------------------------------------- /8.1/onbuild/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM hypriot/rpi-node:8.1.3 2 | 3 | RUN mkdir -p /usr/src/app 4 | WORKDIR /usr/src/app 5 | 6 | ONBUILD COPY package.json /usr/src/app/ 7 | ONBUILD RUN npm install 8 | ONBUILD COPY . /usr/src/app 9 | 10 | CMD [ "npm", "start" ] 11 | -------------------------------------------------------------------------------- /8.1/slim/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM resin/rpi-raspbian:jessie 2 | 3 | RUN apt-get update && apt-get install -y --no-install-recommends \ 4 | ca-certificates \ 5 | curl \ 6 | wget \ 7 | && rm -rf /var/lib/apt/lists/* \ 8 | && apt-get clean 9 | 10 | # gpg keys listed at https://github.com/nodejs/node 11 | RUN set -ex \ 12 | && for key in \ 13 | 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 14 | 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 15 | FD3A5288F042B6850C66B31F09FE44734EB7990E \ 16 | 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 17 | DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 18 | B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 19 | C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 20 | 56730D5401028683275BD23C23EFEFE93C4CFFFE \ 21 | ; do \ 22 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ 23 | done 24 | 25 | ENV NPM_CONFIG_LOGLEVEL info 26 | ENV NODE_VERSION 8.1.3 27 | 28 | RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv6l.tar.gz" \ 29 | && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 30 | && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ 31 | && grep " node-v$NODE_VERSION-linux-armv6l.tar.gz\$" SHASUMS256.txt | sha256sum -c - \ 32 | && tar -xzf "node-v$NODE_VERSION-linux-armv6l.tar.gz" -C /usr/local --strip-components=1 \ 33 | && rm "node-v$NODE_VERSION-linux-armv6l.tar.gz" SHASUMS256.txt SHASUMS256.txt.asc 34 | 35 | ENV YARN_VERSION 0.24.6 36 | 37 | RUN set -ex \ 38 | && for key in \ 39 | 6A010C5166006599AA17F08146C2130DFD2497F5 \ 40 | ; do \ 41 | gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" || \ 42 | gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ 43 | gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \ 44 | done \ 45 | && curl -fSL -o yarn.js "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js" \ 46 | && curl -fSL -o yarn.js.asc "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-legacy-$YARN_VERSION.js.asc" \ 47 | && gpg --batch --verify yarn.js.asc yarn.js \ 48 | && rm yarn.js.asc \ 49 | && mv yarn.js /usr/local/bin/yarn \ 50 | && chmod +x /usr/local/bin/yarn 51 | 52 | CMD [ "node" ] 53 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Hypriot 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DEPRECATION NOTICE 2 | 3 | You can find semi-official Node.js Docker images for ARM at https://hub.docker.com/r/arm32v7/node/, so this repo is no longer maintained. 4 | 5 | # rpi-node [![Build Status](https://travis-ci.org/hypriot/rpi-node.svg?branch=master)](https://travis-ci.org/hypriot/rpi-node) 6 | 7 | Raspberry Pi compatible Docker base image with [Node.js](http://nodejs.org) 8 | 9 | Run all the commands from within the project root directory. 10 | 11 | ### Supported tags and respective `Dockerfile` links 12 | - `8.1.3`, `8.1`, `8`, `latest` ([8.1/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/8.1/Dockerfile)) 13 | - `8.1.3-onbuild`, `8.1-onbuild`, `8-onbuild`, `onbuild` ([8.1/onbuild/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/8.1/onbuild/Dockerfile)) 14 | - `8.1.3-slim`, `8.1-slim`, `8-slim`, `slim` ([8.1/slim/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/8.1/slim/Dockerfile)) 15 | - `6.11.0`, `6.11`, `6`, `boron`, `latest` ([6.11/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/6.11/Dockerfile)) 16 | - `6.11.0-onbuild`, `6.11-onbuild`, `6-onbuild`, `boron-onbuild`, `onbuild` ([6.11/onbuild/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/6.11/onbuild/Dockerfile)) 17 | - `6.11.0-slim`, `6.11-slim`, `6-slim`, `boron-slim`, `slim` ([6.11/slim/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/6.11/slim/Dockerfile)) 18 | - `4.8.0`, `4.8`, `4`, `argon` ([4.8/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/4.8/Dockerfile)) 19 | - `4.8.0-onbuild`, `4.8-onbuild`, `4-onbuild`, `argon-onbuild` ([4.8/onbuild/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/4.8/onbuild/Dockerfile)) 20 | - `4.8.0-slim`, `4.8-slim`, `4-slim`, `argon-slim` ([4.8/slim/Dockerfile](https://github.com/hypriot/rpi-node/blob/master/4.8/slim/Dockerfile)) 21 | 22 | ## rpi-node 23 | 24 | Raspberry Pi compatible Docker base image with [Node.js](http://nodejs.org). 25 | 26 | Run all the commands from within the project root directory. 27 | 28 | ### Build Details 29 | - [Source Project Page](https://github.com/hypriot) 30 | - [Source Repository](https://github.com/hypriot/rpi-node) 31 | 32 | #### Build the Docker Image 33 | ```bash 34 | ./build.sh 35 | ``` 36 | 37 | ## License 38 | 39 | The MIT License (MIT) 40 | 41 | Copyright (c) 2015 Hypriot 42 | 43 | Permission is hereby granted, free of charge, to any person obtaining a copy 44 | of this software and associated documentation files (the "Software"), to deal 45 | in the Software without restriction, including without limitation the rights 46 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 47 | copies of the Software, and to permit persons to whom the Software is 48 | furnished to do so, subject to the following conditions: 49 | 50 | The above copyright notice and this permission notice shall be included in all 51 | copies or substantial portions of the Software. 52 | 53 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 54 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 55 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 56 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 57 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 58 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 59 | SOFTWARE. 60 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Run a build for all images. 4 | 5 | set -uo pipefail 6 | 7 | info() { 8 | printf "%s\n" "$@" 9 | } 10 | 11 | fatal() { 12 | printf "**********\n" 13 | printf "%s\n" "$@" 14 | printf "**********\n" 15 | exit 1 16 | } 17 | 18 | cd $(cd ${0%/*} && pwd -P); 19 | 20 | versions=( "$@" ) 21 | if [ ${#versions[@]} -eq 0 ]; then 22 | versions=( */ ) 23 | fi 24 | versions=( "${versions[@]%/}" ) 25 | 26 | for version in "${versions[@]}"; do 27 | 28 | echo $version 29 | tag=$(cat $version/Dockerfile | grep "ENV NODE_VERSION" | cut -d' ' -f3) 30 | 31 | info "Building $tag..." 32 | docker build -t hypriot/rpi-node:$tag $version 33 | 34 | if [[ $? -gt 0 ]]; then 35 | fatal "Build of $tag failed!" 36 | else 37 | info "Build of $tag succeeded." 38 | fi 39 | 40 | variants=( slim onbuild ) 41 | 42 | for variant in "${variants[@]}"; do 43 | info "Building $tag-$variant variant..." 44 | docker build -t hypriot/rpi-node:$tag-$variant $version/$variant 45 | 46 | if [[ $? -gt 0 ]]; then 47 | fatal "Build of $tag-$variant failed!" 48 | else 49 | info "Build of $tag-$variant succeeded." 50 | fi 51 | 52 | done 53 | 54 | done 55 | 56 | info "All builds successful!" 57 | 58 | exit 0 59 | -------------------------------------------------------------------------------- /push.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Push all images. 4 | 5 | set -uo pipefail 6 | 7 | info() { 8 | printf "%s\n" "$@" 9 | } 10 | 11 | fatal() { 12 | printf "**********\n" 13 | printf "%s\n" "$@" 14 | printf "**********\n" 15 | exit 1 16 | } 17 | 18 | cd $(cd ${0%/*} && pwd -P); 19 | 20 | versions=( "$@" ) 21 | if [ ${#versions[@]} -eq 0 ]; then 22 | versions=( */ ) 23 | fi 24 | versions=( "${versions[@]%/}" ) 25 | 26 | for version in "${versions[@]}"; do 27 | 28 | echo $version 29 | tag=$(cat $version/Dockerfile | grep "ENV NODE_VERSION" | cut -d' ' -f3) 30 | 31 | info "Tagging $tag..." 32 | v=( ${tag//./ } ) 33 | tag_major="${v[0]}" 34 | tag_minor="${v[0]}.${v[1]}" 35 | tag_patch="${v[0]}.${v[1]}.${v[2]}" 36 | if [ $tag_major == "4" ]; then 37 | name="argon" 38 | fi 39 | if [ $tag_major == "6" ]; then 40 | name="boron" 41 | fi 42 | if [ $tag_major == "8" ]; then 43 | name="" 44 | fi 45 | docker tag hypriot/rpi-node:$tag hypriot/rpi-node:$tag_major 46 | docker tag hypriot/rpi-node:$tag hypriot/rpi-node:$tag_minor 47 | docker tag hypriot/rpi-node:$tag hypriot/rpi-node:$tag_patch 48 | docker push hypriot/rpi-node:$tag_major 49 | docker push hypriot/rpi-node:$tag_major 50 | docker push hypriot/rpi-node:$tag_minor 51 | docker push hypriot/rpi-node:$tag_patch 52 | if [ -z $name ]; then 53 | docker tag hypriot/rpi-node:$tag hypriot/rpi-node:latest 54 | docker push hypriot/rpi-node:latest 55 | else 56 | docker tag hypriot/rpi-node:$tag hypriot/rpi-node:$name 57 | docker push hypriot/rpi-node:$name 58 | fi 59 | 60 | if [[ $? -gt 0 ]]; then 61 | fatal "Tag of $tag failed!" 62 | else 63 | info "Tag of $tag succeeded." 64 | fi 65 | 66 | variants=( slim onbuild ) 67 | 68 | for variant in "${variants[@]}"; do 69 | info "Tagging $tag-$variant variant..." 70 | docker tag hypriot/rpi-node:$tag-$variant hypriot/rpi-node:$tag_major-$variant 71 | docker tag hypriot/rpi-node:$tag-$variant hypriot/rpi-node:$tag_minor-$variant 72 | docker tag hypriot/rpi-node:$tag-$variant hypriot/rpi-node:$tag_patch-$variant 73 | docker push hypriot/rpi-node:$tag-$variant 74 | docker push hypriot/rpi-node:$tag_major-$variant 75 | docker push hypriot/rpi-node:$tag_minor-$variant 76 | docker push hypriot/rpi-node:$tag_patch-$variant 77 | if [ -z $name ]; then 78 | docker tag hypriot/rpi-node:$tag-$variant hypriot/rpi-node:$variant 79 | docker push hypriot/rpi-node:$variant 80 | else 81 | docker tag hypriot/rpi-node:$tag-$variant hypriot/rpi-node:$name-$variant 82 | docker push hypriot/rpi-node:$name-$variant 83 | fi 84 | 85 | if [[ $? -gt 0 ]]; then 86 | fatal "Tag of $tag-$variant failed!" 87 | else 88 | info "Tag of $tag-$variant succeeded." 89 | fi 90 | 91 | done 92 | 93 | done 94 | 95 | info "All builds successful!" 96 | 97 | exit 0 98 | -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # Run a test for all images. 4 | 5 | set -uo pipefail 6 | 7 | info() { 8 | printf "%s\n" "$@" 9 | } 10 | 11 | fatal() { 12 | printf "**********\n" 13 | printf "%s\n" "$@" 14 | printf "**********\n" 15 | exit 1 16 | } 17 | 18 | cd $(cd ${0%/*} && pwd -P); 19 | 20 | versions=( "$@" ) 21 | if [ ${#versions[@]} -eq 0 ]; then 22 | versions=( */ ) 23 | fi 24 | versions=( "${versions[@]%/}" ) 25 | 26 | for version in "${versions[@]}"; do 27 | 28 | echo $version 29 | tag=$(cat $version/Dockerfile | grep "ENV NODE_VERSION" | cut -d' ' -f3) 30 | 31 | info "Testing NodeJS version $tag..." 32 | docker run hypriot/rpi-node:$tag node --version 33 | 34 | if [[ $? -gt 0 ]]; then 35 | fatal "Test of $tag failed!" 36 | else 37 | info "Test of $tag succeeded." 38 | fi 39 | 40 | info "Testing Yarn..." 41 | docker run hypriot/rpi-node:$tag yarn --version 42 | 43 | if [[ $? -gt 0 ]]; then 44 | fatal "Test of $tag failed!" 45 | else 46 | info "Test of $tag succeeded." 47 | fi 48 | 49 | variants=( slim onbuild ) 50 | 51 | for variant in "${variants[@]}"; do 52 | info "Testing NodeJS version $tag-$variant variant..." 53 | docker run hypriot/rpi-node:$tag-$variant node --version 54 | 55 | if [[ $? -gt 0 ]]; then 56 | fatal "Test of $tag-$variant failed!" 57 | else 58 | info "Test of $tag-$variant succeeded." 59 | fi 60 | 61 | info "Testing Yarn-$variant variant..." 62 | docker run hypriot/rpi-node:$tag yarn --version 63 | 64 | if [[ $? -gt 0 ]]; then 65 | fatal "Test of $tag failed!" 66 | else 67 | info "Test of $tag succeeded." 68 | fi 69 | 70 | done 71 | 72 | done 73 | 74 | info "All tests successful!" 75 | 76 | exit 0 77 | -------------------------------------------------------------------------------- /update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | function update_version() { 5 | version=$1 6 | latest=$(curl -s https://nodejs.org/dist/latest-v${version}.x/SHASUMS256.txt | head -1 | sed 's/^.*node-v//' | sed 's/-.*//') 7 | curr=$(grep -oE "NODE_VERSION [0-9.]+" ${version}*/Dockerfile) 8 | curr=${curr#* } 9 | 10 | if [ "$curr" == "$latest" ]; then 11 | return 12 | fi 13 | 14 | echo "Updating $curr -> $latest" 15 | 16 | a=( ${curr//./ } ) 17 | curr_major="${a[0]}" 18 | curr_major_minor="${a[0]}.${a[1]}" 19 | a=( ${latest//./ } ) 20 | latest_major="${a[0]}" 21 | latest_major_minor="${a[0]}.${a[1]}" 22 | 23 | find ${curr_major_minor} -type f -exec sed -i "" "s/$curr/$latest/g" {} + 24 | find build* -type f -exec sed -i "" "s/$curr_major/$latest_major/g" {} + 25 | find push* -type f -exec sed -i "" "s/$curr_major/$latest_major/g" {} + 26 | find README* -type f -exec sed -i "" "s/$curr/$latest/g" {} + 27 | find README* -type f -exec sed -i "" "s/$curr_major_minor/$latest_major_minor/g" {} + 28 | find README* -type f -exec sed -i "" "s/$curr_major/$latest_major/g" {} + 29 | 30 | if [ "$curr_major_minor" != "$latest_major_minor" ]; then 31 | mv ${curr_major_minor} ${latest_major_minor} 32 | fi 33 | } 34 | 35 | update_version 8 36 | update_version 6 37 | --------------------------------------------------------------------------------