From 5862e477e25db31ae18fc53b03f46213d4dcc8ab Mon Sep 17 00:00:00 2001 From: Flurin Egger Date: Wed, 18 Jan 2017 15:52:29 +0100 Subject: [PATCH 01/13] Complete forking from Edwin van der Graaf Thanks for all the great work Edwin! --- Dockerfile | 4 ++-- circle.yml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6d8ec0f..2b1f331 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM ubuntu:14.04 -MAINTAINER Edwin van der Graaf +MAINTAINER Flurin Egger RUN apt-get update RUN apt-get -y upgrade @@ -48,7 +48,7 @@ RUN npm install yarn@0.16.1 -g # Download phantomjs build (see README) RUN \ cd /tmp && \ - git clone https://github.com/edwinvdgraaf/phantomjs-build.git && \ + git clone https://github.com/digitpaint/phantomjs-build.git && \ cd phantomjs-build && \ cp bin/phantomjs /usr/local/bin/ && \ cd /tmp && \ diff --git a/circle.yml b/circle.yml index a69c273..2ea264e 100644 --- a/circle.yml +++ b/circle.yml @@ -9,8 +9,8 @@ dependencies: - bundle install - docker info - if [[ -e ~/docker/image.tar ]]; then docker load --input ~/docker/image.tar; fi - - docker build -t edwinvdgraaf/ruby-node-phantomjs . - - mkdir -p ~/docker; docker save edwinvdgraaf/ruby-node-phantomjs > ~/docker/image.tar + - docker build -t digitpaint/ruby-node-phantomjs . + - mkdir -p ~/docker; docker save digitpaint/ruby-node-phantomjs > ~/docker/image.tar test: override: @@ -22,5 +22,5 @@ deployment: tag: /v[0-9]+(\.[0-9]+)*/ commands: - docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS - - docker tag edwinvdgraaf/ruby-node-phantomjs edwinvdgraaf/ruby-node-phantomjs:$CIRCLE_TAG - - docker push edwinvdgraaf/ruby-node-phantomjs:$CIRCLE_TAG + - docker tag digitpaint/ruby-node-phantomjs digitpaint/ruby-node-phantomjs:$CIRCLE_TAG + - docker push digitpaint/ruby-node-phantomjs:$CIRCLE_TAG From 9a4111ae32692f3b5c9ceb54e5d95ada1c11186c Mon Sep 17 00:00:00 2001 From: Flurin Egger Date: Wed, 18 Jan 2017 15:52:49 +0100 Subject: [PATCH 02/13] Update yarn --- Dockerfile | 2 +- spec/dockerfile_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2b1f331..3a4c295 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,7 +43,7 @@ RUN \ rm -rf /tmp/node-v* && \ echo -e '\n# Node.js\nexport PATH="node_modules/.bin:$PATH"' >> /root/.bashrc -RUN npm install yarn@0.16.1 -g +RUN npm install yarn@0.19.1 -g # Download phantomjs build (see README) RUN \ diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index fabc158..f92dac4 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -54,7 +54,7 @@ def remove(*); end end describe command("yarn --version") do - its(:stdout) { should match /0\.16\.1/ } + its(:stdout) { should match /0\.19\.1/ } end describe command("phantomjs -v") do From c18de03d2fb10a0ac1c4bfbbaac631d0d2138ea8 Mon Sep 17 00:00:00 2001 From: Flurin Egger Date: Wed, 18 Jan 2017 15:52:54 +0100 Subject: [PATCH 03/13] Update phantomjs --- spec/dockerfile_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index f92dac4..7145399 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -58,7 +58,7 @@ def remove(*); end end describe command("phantomjs -v") do - its(:stdout) { should match /2\.0\.0/ } + its(:stdout) { should match /2\.1\.1/ } end def os_version From ace4b47f3b023e9f6c7f7f9b5d6053945768c8c6 Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Mon, 21 Aug 2017 16:17:17 +0200 Subject: [PATCH 04/13] Remove deprecated deps --- Dockerfile | 13 ++----------- spec/dockerfile_spec.rb | 18 ------------------ 2 files changed, 2 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3a4c295..1572735 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,8 +5,7 @@ RUN apt-get update RUN apt-get -y upgrade RUN apt-get -y install build-essential zlib1g-dev libssl-dev \ - libreadline6-dev libyaml-dev git python-software-properties \ - fontconfig libjpeg8 libjpeg-turbo8 libicu52 + libreadline6-dev libyaml-dev git python-software-properties ENV RUBY_DOWNLOAD_SHA256 ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507 ADD https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz /tmp/ @@ -45,16 +44,8 @@ RUN \ RUN npm install yarn@0.19.1 -g -# Download phantomjs build (see README) -RUN \ - cd /tmp && \ - git clone https://github.com/digitpaint/phantomjs-build.git && \ - cd phantomjs-build && \ - cp bin/phantomjs /usr/local/bin/ && \ - cd /tmp && \ - rm -rf /tmp/phantomjs-build # Install extra dependencies # separated from the compile dependencies for node and ruby # to make use of docker build layers -RUN apt-get -y install zip yui-compressor curl +RUN apt-get -y install zip curl diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index 7145399..bcd83b1 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -27,20 +27,6 @@ def remove(*); end expect(os_version).to include("Ubuntu 14") end - # Zip and yiu-compressor for roger release - %w{git zip yui-compressor}.each do |p| - it "installs package #{p}" do - expect(package(p)).to be_installed - end - end - - # PhantomJS runtime dependencies - %w{fontconfig libjpeg8 libjpeg-turbo8 libicu52}.each do |p| - it "installs package #{p}" do - expect(package(p)).to be_installed - end - end - describe command("ruby -v") do its(:stdout) { should match /2\.3\.0p0/ } end @@ -57,10 +43,6 @@ def remove(*); end its(:stdout) { should match /0\.19\.1/ } end - describe command("phantomjs -v") do - its(:stdout) { should match /2\.1\.1/ } - end - def os_version command("lsb_release -a").stdout end From 742291e0f33675f507103575d24ae93a4408a4fb Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Mon, 21 Aug 2017 16:07:42 +0200 Subject: [PATCH 05/13] Update Ubuntu image --- Dockerfile | 5 ++--- spec/dockerfile_spec.rb | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1572735..d6872e6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,10 @@ -FROM ubuntu:14.04 +FROM buildpack-deps:xenial MAINTAINER Flurin Egger RUN apt-get update RUN apt-get -y upgrade -RUN apt-get -y install build-essential zlib1g-dev libssl-dev \ - libreadline6-dev libyaml-dev git python-software-properties +RUN apt-get -y install software-properties-common ENV RUBY_DOWNLOAD_SHA256 ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507 ADD https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz /tmp/ diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index bcd83b1..854e507 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -24,7 +24,7 @@ def remove(*); end end it "ubuntu" do - expect(os_version).to include("Ubuntu 14") + expect(os_version).to include("Ubuntu 16") end describe command("ruby -v") do From b5b9d9854e9ed6b6c414ccf695c7bbd2ddefc604 Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Mon, 21 Aug 2017 16:21:55 +0200 Subject: [PATCH 06/13] Update Node and Yarn --- Dockerfile | 51 +++++++++++++++++++++++++++++------------ spec/dockerfile_spec.rb | 8 +++---- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index d6872e6..b46d8c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,24 +25,45 @@ RUN \ RUN gem install bundler --no-ri --no-rdoc # Install node -ENV NODEJS_DOWNLOAD_SHA256 d7742558bb3331e41510d6e6f1f7b13c0527aecc00a63c3e05fcfd44427ff778 -ADD https://nodejs.org/dist/v6.5.0/node-v6.5.0.tar.gz /tmp/ +# Based on https://github.com/nodejs/docker-node/blob/master/8.4/Dockerfile +# gpg keys listed at https://github.com/nodejs/node#release-team +RUN set -ex \ + && 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 -RUN \ - cd /tmp && \ - echo "$NODEJS_DOWNLOAD_SHA256 *node-v6.5.0.tar.gz" | sha256sum -c - && \ - tar xvzf node-v6.5.0.tar.gz && \ - rm -f node-v6.5.0.tar.gz && \ - cd node-v* && \ - ./configure && \ - CXX="g++ -Wno-unused-local-typedefs" make && \ - CXX="g++ -Wno-unused-local-typedefs" make install && \ - cd /tmp && \ - rm -rf /tmp/node-v* && \ - echo -e '\n# Node.js\nexport PATH="node_modules/.bin:$PATH"' >> /root/.bashrc +ENV NPM_CONFIG_LOGLEVEL info +ENV NODE_VERSION 8.4.0 -RUN npm install yarn@0.19.1 -g +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.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-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ + && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 \ + && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs +RUN npm install yarn@0.27.5 -g # Install extra dependencies # separated from the compile dependencies for node and ruby diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index 854e507..b018f53 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -31,16 +31,16 @@ def remove(*); end its(:stdout) { should match /2\.3\.0p0/ } end - describe command("node -v") do - its(:stdout) { should match /6\.5\.0/ } + describe command("node --version") do + its(:stdout) { should match /8\.4\.0/ } end describe command("npm -v") do - its(:stdout) { should match /3\.10\.3/ } + its(:stdout) { should match /5\.3\.0/ } end describe command("yarn --version") do - its(:stdout) { should match /0\.19\.1/ } + its(:stdout) { should match /0\.27\.5/ } end def os_version From 0c1780d204da4c9f3188e4dc2e90c708992c8424 Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Mon, 21 Aug 2017 16:49:05 +0200 Subject: [PATCH 07/13] Update Ruby --- .ruby-version | 2 +- Dockerfile | 19 ++++--------------- spec/dockerfile_spec.rb | 2 +- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/.ruby-version b/.ruby-version index b1b25a5..005119b 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.2.2 +2.4.1 diff --git a/Dockerfile b/Dockerfile index b46d8c6..4e693cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,21 +6,10 @@ RUN apt-get -y upgrade RUN apt-get -y install software-properties-common -ENV RUBY_DOWNLOAD_SHA256 ba5ba60e5f1aa21b4ef8e9bf35b9ddb57286cb546aac4b5a28c71f459467e507 -ADD https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz /tmp/ - -# Install ruby -RUN \ - cd /tmp && \ - echo "$RUBY_DOWNLOAD_SHA256 *ruby-2.3.0.tar.gz" | sha256sum -c - && \ - tar -xzf ruby-2.3.0.tar.gz && \ - cd ruby-2.3.0 && \ - ./configure && \ - make && \ - make install && \ - cd .. && \ - rm -rf ruby-2.3.0 && \ - rm -f ruby-2.3.0.tar.gz +# Install Ruby +RUN apt-add-repository ppa:brightbox/ruby-ng +RUN apt-get update +RUN apt-get -y install ruby2.3 ruby2.3-dev RUN gem install bundler --no-ri --no-rdoc diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index b018f53..e972e97 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -28,7 +28,7 @@ def remove(*); end end describe command("ruby -v") do - its(:stdout) { should match /2\.3\.0p0/ } + its(:stdout) { should match /2\.3/ } end describe command("node --version") do From 4f0c6d97f05a60f88cc914fbad36236d1b543ed4 Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Tue, 12 Dec 2017 11:48:24 +0100 Subject: [PATCH 08/13] Upgrade node and yarn Fixes a build that fails with yarn 0.27.5 --- Dockerfile | 6 +++--- spec/dockerfile_spec.rb | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4e693cd..612ebd0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,6 @@ RUN gem install bundler --no-ri --no-rdoc # gpg keys listed at https://github.com/nodejs/node#release-team RUN set -ex \ && for key in \ - 9554F04D7259F04124DE6B476D5A82AC7E37093B \ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ FD3A5288F042B6850C66B31F09FE44734EB7990E \ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ @@ -26,6 +25,7 @@ RUN set -ex \ B9AE9905FFD7803F25714661B63B535A4C206CA9 \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 56730D5401028683275BD23C23EFEFE93C4CFFFE \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ ; do \ gpg --keyserver pgp.mit.edu --recv-keys "$key" || \ gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \ @@ -33,7 +33,7 @@ RUN set -ex \ done ENV NPM_CONFIG_LOGLEVEL info -ENV NODE_VERSION 8.4.0 +ENV NODE_VERSION 8.9.3 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -52,7 +52,7 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ && ln -s /usr/local/bin/node /usr/local/bin/nodejs -RUN npm install yarn@0.27.5 -g +RUN npm install yarn@1.3.2 -g # Install extra dependencies # separated from the compile dependencies for node and ruby diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index e972e97..9223306 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -32,15 +32,15 @@ def remove(*); end end describe command("node --version") do - its(:stdout) { should match /8\.4\.0/ } + its(:stdout) { should match /8\.9\.3/ } end describe command("npm -v") do - its(:stdout) { should match /5\.3\.0/ } + its(:stdout) { should match /5\.5\.1/ } end describe command("yarn --version") do - its(:stdout) { should match /0\.27\.5/ } + its(:stdout) { should match /1\.3\.2/ } end def os_version From 5a3bb800040c08cae6c8068f7da8bba3f5ff7041 Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Sat, 17 Feb 2018 18:22:58 +0100 Subject: [PATCH 09/13] Update apt repos after adding repository --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 612ebd0..f317f89 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,7 @@ RUN apt-get -y upgrade RUN apt-get -y install software-properties-common # Install Ruby -RUN apt-add-repository ppa:brightbox/ruby-ng -RUN apt-get update +RUN apt-add-repository ppa:brightbox/ruby-ng && apt-get update RUN apt-get -y install ruby2.3 ruby2.3-dev RUN gem install bundler --no-ri --no-rdoc From 4e52f7361e454e9b913cbad456817c8c06b969e8 Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Sat, 17 Feb 2018 18:23:05 +0100 Subject: [PATCH 10/13] Add rsync --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f317f89..743e4c3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,4 +56,4 @@ RUN npm install yarn@1.3.2 -g # Install extra dependencies # separated from the compile dependencies for node and ruby # to make use of docker build layers -RUN apt-get -y install zip curl +RUN apt-get -y install zip curl rsync From 372f5876f78b8f0f5118d7b0bcc921c61aa555f5 Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Sat, 17 Feb 2018 18:33:04 +0100 Subject: [PATCH 11/13] Update buildpack image --- Dockerfile | 9 ++------- spec/dockerfile_spec.rb | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 743e4c3..d824e10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ -FROM buildpack-deps:xenial +FROM buildpack-deps:bionic MAINTAINER Flurin Egger RUN apt-get update RUN apt-get -y upgrade -RUN apt-get -y install software-properties-common +RUN apt-get -y install software-properties-common zip rsync # Install Ruby RUN apt-add-repository ppa:brightbox/ruby-ng && apt-get update @@ -52,8 +52,3 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && ln -s /usr/local/bin/node /usr/local/bin/nodejs RUN npm install yarn@1.3.2 -g - -# Install extra dependencies -# separated from the compile dependencies for node and ruby -# to make use of docker build layers -RUN apt-get -y install zip curl rsync diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index 9223306..2288c7f 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -24,7 +24,7 @@ def remove(*); end end it "ubuntu" do - expect(os_version).to include("Ubuntu 16") + expect(os_version).to include("Ubuntu 18") end describe command("ruby -v") do From 1f666c6b3013d8253615cc5f1b00a63454eba01c Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Sat, 17 Feb 2018 18:32:49 +0100 Subject: [PATCH 12/13] Update ruby to 2.5 --- Dockerfile | 2 +- spec/dockerfile_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d824e10..586e287 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN apt-get -y install software-properties-common zip rsync # Install Ruby RUN apt-add-repository ppa:brightbox/ruby-ng && apt-get update -RUN apt-get -y install ruby2.3 ruby2.3-dev +RUN apt-get -y install ruby2.5 ruby2.5-dev RUN gem install bundler --no-ri --no-rdoc diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index 2288c7f..bd1cdc1 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -28,7 +28,7 @@ def remove(*); end end describe command("ruby -v") do - its(:stdout) { should match /2\.3/ } + its(:stdout) { should match /2\.5/ } end describe command("node --version") do From c691671cccd571d62b46a001f8c4cb8f686671de Mon Sep 17 00:00:00 2001 From: Hans Krutzer Date: Sat, 17 Feb 2018 18:32:37 +0100 Subject: [PATCH 13/13] Update node to 10.8.0 --- Dockerfile | 39 +++++++++++++++++++++++++++++---------- spec/dockerfile_spec.rb | 8 ++------ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 586e287..b39ba56 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ RUN apt-get -y install ruby2.5 ruby2.5-dev RUN gem install bundler --no-ri --no-rdoc # Install node -# Based on https://github.com/nodejs/docker-node/blob/master/8.4/Dockerfile +# Based on https://github.com/nodejs/docker-node/blob/master/9/Dockerfile # gpg keys listed at https://github.com/nodejs/node#release-team RUN set -ex \ && for key in \ @@ -25,14 +25,15 @@ RUN set -ex \ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 56730D5401028683275BD23C23EFEFE93C4CFFFE \ 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ ; 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" ; \ + gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" || \ + gpg --keyserver hkp://keyserver.pgp.com:80 --recv-keys "$key" || \ + gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" ; \ done -ENV NPM_CONFIG_LOGLEVEL info -ENV NODE_VERSION 8.9.3 +ENV NODE_VERSION 10.8.0 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -41,14 +42,32 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ s390x) ARCH='s390x';; \ arm64) ARCH='arm64';; \ armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ *) echo "unsupported architecture"; exit 1 ;; \ esac \ - && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ - && curl -SLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ + && curl -fsSLO --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-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 \ + && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ && ln -s /usr/local/bin/node /usr/local/bin/nodejs -RUN npm install yarn@1.3.2 -g +ENV YARN_VERSION 1.9.4 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ + && curl -fsSLO --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 \ + && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ + && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ + && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz diff --git a/spec/dockerfile_spec.rb b/spec/dockerfile_spec.rb index bd1cdc1..53bd452 100644 --- a/spec/dockerfile_spec.rb +++ b/spec/dockerfile_spec.rb @@ -32,15 +32,11 @@ def remove(*); end end describe command("node --version") do - its(:stdout) { should match /8\.9\.3/ } - end - - describe command("npm -v") do - its(:stdout) { should match /5\.5\.1/ } + its(:stdout) { should match /10\.8\.0/ } end describe command("yarn --version") do - its(:stdout) { should match /1\.3\.2/ } + its(:stdout) { should match /1\.9\.4/ } end def os_version