diff --git a/android/images/api-23-node/Dockerfile b/android/images/api-23-node/Dockerfile index ec9e2fe83..65256f65d 100644 --- a/android/images/api-23-node/Dockerfile +++ b/android/images/api-23-node/Dockerfile @@ -209,12 +209,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -253,7 +253,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/android/images/api-24-node/Dockerfile b/android/images/api-24-node/Dockerfile index ba79d2eca..822fe45a1 100644 --- a/android/images/api-24-node/Dockerfile +++ b/android/images/api-24-node/Dockerfile @@ -209,12 +209,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -253,7 +253,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/android/images/api-25-node/Dockerfile b/android/images/api-25-node/Dockerfile index b57943104..cfb1c5697 100644 --- a/android/images/api-25-node/Dockerfile +++ b/android/images/api-25-node/Dockerfile @@ -209,12 +209,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -253,7 +253,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/android/images/api-26-node/Dockerfile b/android/images/api-26-node/Dockerfile index b784990b7..7c51e03de 100644 --- a/android/images/api-26-node/Dockerfile +++ b/android/images/api-26-node/Dockerfile @@ -209,12 +209,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -253,7 +253,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/android/images/api-27-node/Dockerfile b/android/images/api-27-node/Dockerfile index a42d96668..d7b138e7f 100644 --- a/android/images/api-27-node/Dockerfile +++ b/android/images/api-27-node/Dockerfile @@ -209,12 +209,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -253,7 +253,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/android/images/api-28-node/Dockerfile b/android/images/api-28-node/Dockerfile index 146027239..f305ee41c 100644 --- a/android/images/api-28-node/Dockerfile +++ b/android/images/api-28-node/Dockerfile @@ -209,12 +209,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -253,7 +253,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/android/images/api-29-node/Dockerfile b/android/images/api-29-node/Dockerfile index f149d751d..77985508d 100644 --- a/android/images/api-29-node/Dockerfile +++ b/android/images/api-29-node/Dockerfile @@ -209,12 +209,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -253,7 +253,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/clojure/images/openjdk-11-boot/node/Dockerfile b/clojure/images/openjdk-11-boot/node/Dockerfile index 0a6056b7d..41cc2902f 100644 --- a/clojure/images/openjdk-11-boot/node/Dockerfile +++ b/clojure/images/openjdk-11-boot/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/clojure/images/openjdk-11-lein/node/Dockerfile b/clojure/images/openjdk-11-lein/node/Dockerfile index 209e955f7..ed2972f79 100644 --- a/clojure/images/openjdk-11-lein/node/Dockerfile +++ b/clojure/images/openjdk-11-lein/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/clojure/images/openjdk-11-tools-deps/node/Dockerfile b/clojure/images/openjdk-11-tools-deps/node/Dockerfile index 4e86ba722..3e7b1499f 100644 --- a/clojure/images/openjdk-11-tools-deps/node/Dockerfile +++ b/clojure/images/openjdk-11-tools-deps/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/clojure/images/openjdk-8-boot/node/Dockerfile b/clojure/images/openjdk-8-boot/node/Dockerfile index f67a76892..ca8a7a24f 100644 --- a/clojure/images/openjdk-8-boot/node/Dockerfile +++ b/clojure/images/openjdk-8-boot/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/clojure/images/openjdk-8-lein/node/Dockerfile b/clojure/images/openjdk-8-lein/node/Dockerfile index 64299d08a..5e6cbf405 100644 --- a/clojure/images/openjdk-8-lein/node/Dockerfile +++ b/clojure/images/openjdk-8-lein/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/clojure/images/openjdk-8-tools-deps/node/Dockerfile b/clojure/images/openjdk-8-tools-deps/node/Dockerfile index a14f30c1b..8f357bd09 100644 --- a/clojure/images/openjdk-8-tools-deps/node/Dockerfile +++ b/clojure/images/openjdk-8-tools-deps/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.4.5/node/Dockerfile b/elixir/images/1.4.5/node/Dockerfile index 25b6cf04f..1c3b5e782 100644 --- a/elixir/images/1.4.5/node/Dockerfile +++ b/elixir/images/1.4.5/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.5.3/node/Dockerfile b/elixir/images/1.5.3/node/Dockerfile index c8127091b..17de994a5 100644 --- a/elixir/images/1.5.3/node/Dockerfile +++ b/elixir/images/1.5.3/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.6.6-otp-21/node/Dockerfile b/elixir/images/1.6.6-otp-21/node/Dockerfile index 89c7247ff..01337b083 100644 --- a/elixir/images/1.6.6-otp-21/node/Dockerfile +++ b/elixir/images/1.6.6-otp-21/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.6.6/node/Dockerfile b/elixir/images/1.6.6/node/Dockerfile index c47511cfc..a7ff7720e 100644 --- a/elixir/images/1.6.6/node/Dockerfile +++ b/elixir/images/1.6.6/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.7.4/node/Dockerfile b/elixir/images/1.7.4/node/Dockerfile index db599ea6f..6a9e6201e 100644 --- a/elixir/images/1.7.4/node/Dockerfile +++ b/elixir/images/1.7.4/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.8.2-otp-22/node/Dockerfile b/elixir/images/1.8.2-otp-22/node/Dockerfile index ee4bcd07f..4e4c0c4f0 100644 --- a/elixir/images/1.8.2-otp-22/node/Dockerfile +++ b/elixir/images/1.8.2-otp-22/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.8.2/node/Dockerfile b/elixir/images/1.8.2/node/Dockerfile index d50420635..f95ae2792 100644 --- a/elixir/images/1.8.2/node/Dockerfile +++ b/elixir/images/1.8.2/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/elixir/images/1.9.1/node/Dockerfile b/elixir/images/1.9.1/node/Dockerfile index 3833bb5b1..e2ff58561 100644 --- a/elixir/images/1.9.1/node/Dockerfile +++ b/elixir/images/1.9.1/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/golang/images/1.11.12-buster/node/Dockerfile b/golang/images/1.11.12-buster/node/Dockerfile index 06440fec2..cabdeb376 100644 --- a/golang/images/1.11.12-buster/node/Dockerfile +++ b/golang/images/1.11.12-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/golang/images/1.11.12-stretch/node/Dockerfile b/golang/images/1.11.12-stretch/node/Dockerfile index 6d00e84b7..9d75ba530 100644 --- a/golang/images/1.11.12-stretch/node/Dockerfile +++ b/golang/images/1.11.12-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/golang/images/1.11.12/node/Dockerfile b/golang/images/1.11.12/node/Dockerfile index 68f83a33a..b6323d7b9 100644 --- a/golang/images/1.11.12/node/Dockerfile +++ b/golang/images/1.11.12/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/golang/images/1.12.7-buster/node/Dockerfile b/golang/images/1.12.7-buster/node/Dockerfile index c4220d2ec..b462e2cfa 100644 --- a/golang/images/1.12.7-buster/node/Dockerfile +++ b/golang/images/1.12.7-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/golang/images/1.12.7-stretch/node/Dockerfile b/golang/images/1.12.7-stretch/node/Dockerfile index 43d6c5e16..cb00ca48e 100644 --- a/golang/images/1.12.7-stretch/node/Dockerfile +++ b/golang/images/1.12.7-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/golang/images/1.12.7/node/Dockerfile b/golang/images/1.12.7/node/Dockerfile index 7fc10adde..4162fe5eb 100644 --- a/golang/images/1.12.7/node/Dockerfile +++ b/golang/images/1.12.7/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/jruby/images/9-jdk/node/Dockerfile b/jruby/images/9-jdk/node/Dockerfile index 76715ca86..2956c8822 100644 --- a/jruby/images/9-jdk/node/Dockerfile +++ b/jruby/images/9-jdk/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/jruby/images/9.1-jdk/node/Dockerfile b/jruby/images/9.1-jdk/node/Dockerfile index a38dff061..f7cb55d59 100644 --- a/jruby/images/9.1-jdk/node/Dockerfile +++ b/jruby/images/9.1-jdk/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/jruby/images/9.1/node/Dockerfile b/jruby/images/9.1/node/Dockerfile index 4911bb56a..27769b7f0 100644 --- a/jruby/images/9.1/node/Dockerfile +++ b/jruby/images/9.1/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/jruby/images/latest/node/Dockerfile b/jruby/images/latest/node/Dockerfile index ed631ae8b..02bfd217d 100644 --- a/jruby/images/latest/node/Dockerfile +++ b/jruby/images/latest/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/mongo/images/4.2.0-rc5-bionic/Dockerfile b/mongo/images/4.2.0-rc5-bionic/Dockerfile new file mode 100644 index 000000000..ba1ad13da --- /dev/null +++ b/mongo/images/4.2.0-rc5-bionic/Dockerfile @@ -0,0 +1,7 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM mongo:4.2.0-rc5-bionic + +CMD ["mongod", "--nojournal"] diff --git a/mongo/images/4.2.0-rc5-bionic/ram/Dockerfile b/mongo/images/4.2.0-rc5-bionic/ram/Dockerfile new file mode 100644 index 000000000..a2b4e284c --- /dev/null +++ b/mongo/images/4.2.0-rc5-bionic/ram/Dockerfile @@ -0,0 +1,12 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/mongo:4.2.0-rc5-bionic + +# The ENTRYPOINT for mongo is at /usr/local/bin/docker-entrypoint.sh, but pre-3.6 images also RUN mkdir /dev/shm/mongo +# include a symlink from /entrypoint.sh to that script. So, it's only necessary to update the real +# entrypoint file. This comment can be removed once all pre-3.6 mongo images are gone. +RUN sed -i '/exec "$@"/i mkdir \/dev\/shm\/mongo' /usr/local/bin/docker-entrypoint.sh + +CMD ["mongod", "--nojournal", "--dbpath=/dev/shm/mongo"] diff --git a/mongo/images/4.2.0-rc5/Dockerfile b/mongo/images/4.2.0-rc5/Dockerfile new file mode 100644 index 000000000..516ddb611 --- /dev/null +++ b/mongo/images/4.2.0-rc5/Dockerfile @@ -0,0 +1,7 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM mongo:4.2.0-rc5 + +CMD ["mongod", "--nojournal"] diff --git a/mongo/images/4.2.0-rc5/ram/Dockerfile b/mongo/images/4.2.0-rc5/ram/Dockerfile new file mode 100644 index 000000000..1213e7845 --- /dev/null +++ b/mongo/images/4.2.0-rc5/ram/Dockerfile @@ -0,0 +1,12 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/mongo:4.2.0-rc5 + +# The ENTRYPOINT for mongo is at /usr/local/bin/docker-entrypoint.sh, but pre-3.6 images also RUN mkdir /dev/shm/mongo +# include a symlink from /entrypoint.sh to that script. So, it's only necessary to update the real +# entrypoint file. This comment can be removed once all pre-3.6 mongo images are gone. +RUN sed -i '/exec "$@"/i mkdir \/dev\/shm\/mongo' /usr/local/bin/docker-entrypoint.sh + +CMD ["mongod", "--nojournal", "--dbpath=/dev/shm/mongo"] diff --git a/node/images/10.16.1-buster/Dockerfile b/node/images/10.16.1-buster/Dockerfile new file mode 100644 index 000000000..749d10323 --- /dev/null +++ b/node/images/10.16.1-buster/Dockerfile @@ -0,0 +1,97 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM node:10.16.1-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/node/images/10.16.1-buster/browsers-legacy/Dockerfile b/node/images/10.16.1-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..8f69a4ae8 --- /dev/null +++ b/node/images/10.16.1-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/node:10.16.1-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/node/images/10.16.1-buster/browsers/Dockerfile b/node/images/10.16.1-buster/browsers/Dockerfile new file mode 100644 index 000000000..cc163e052 --- /dev/null +++ b/node/images/10.16.1-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/node:10.16.1-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/node/images/10.16.1-stretch/Dockerfile b/node/images/10.16.1-stretch/Dockerfile new file mode 100644 index 000000000..c247a7eb6 --- /dev/null +++ b/node/images/10.16.1-stretch/Dockerfile @@ -0,0 +1,97 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM node:10.16.1-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/node/images/10.16.1-stretch/browsers-legacy/Dockerfile b/node/images/10.16.1-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..fb9d95f85 --- /dev/null +++ b/node/images/10.16.1-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/node:10.16.1-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/node/images/10.16.1-stretch/browsers/Dockerfile b/node/images/10.16.1-stretch/browsers/Dockerfile new file mode 100644 index 000000000..e9488190c --- /dev/null +++ b/node/images/10.16.1-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/node:10.16.1-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/openjdk/images/11.0.4-jdk-stretch/node/Dockerfile b/openjdk/images/11.0.4-jdk-stretch/node/Dockerfile index 5ad206480..77af07200 100644 --- a/openjdk/images/11.0.4-jdk-stretch/node/Dockerfile +++ b/openjdk/images/11.0.4-jdk-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/openjdk/images/8u222-jdk-stretch/node/Dockerfile b/openjdk/images/8u222-jdk-stretch/node/Dockerfile index 87be98722..4ddb5c877 100644 --- a/openjdk/images/8u222-jdk-stretch/node/Dockerfile +++ b/openjdk/images/8u222-jdk-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-apache-buster/node/Dockerfile b/php/images/7.1.30-apache-buster/node/Dockerfile index e532cf1e4..f7d17a6cb 100644 --- a/php/images/7.1.30-apache-buster/node/Dockerfile +++ b/php/images/7.1.30-apache-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-apache-stretch/node/Dockerfile b/php/images/7.1.30-apache-stretch/node/Dockerfile index 1dea428d7..94939b8ae 100644 --- a/php/images/7.1.30-apache-stretch/node/Dockerfile +++ b/php/images/7.1.30-apache-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-cli-buster/node/Dockerfile b/php/images/7.1.30-cli-buster/node/Dockerfile index cd95443eb..144d206bf 100644 --- a/php/images/7.1.30-cli-buster/node/Dockerfile +++ b/php/images/7.1.30-cli-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-cli-stretch/node/Dockerfile b/php/images/7.1.30-cli-stretch/node/Dockerfile index 4dd9b54a1..4c6203e34 100644 --- a/php/images/7.1.30-cli-stretch/node/Dockerfile +++ b/php/images/7.1.30-cli-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-fpm-buster/node/Dockerfile b/php/images/7.1.30-fpm-buster/node/Dockerfile index 5a1d2bfa5..9ae21395e 100644 --- a/php/images/7.1.30-fpm-buster/node/Dockerfile +++ b/php/images/7.1.30-fpm-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-fpm-stretch/node/Dockerfile b/php/images/7.1.30-fpm-stretch/node/Dockerfile index b2767f5e1..ef8c48ad8 100644 --- a/php/images/7.1.30-fpm-stretch/node/Dockerfile +++ b/php/images/7.1.30-fpm-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-zts-buster/node/Dockerfile b/php/images/7.1.30-zts-buster/node/Dockerfile index 7c27d2667..4e71accdf 100644 --- a/php/images/7.1.30-zts-buster/node/Dockerfile +++ b/php/images/7.1.30-zts-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.1.30-zts-stretch/node/Dockerfile b/php/images/7.1.30-zts-stretch/node/Dockerfile index 5b7bfecae..3d4bc45b2 100644 --- a/php/images/7.1.30-zts-stretch/node/Dockerfile +++ b/php/images/7.1.30-zts-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/php/images/7.2.21-apache-buster/Dockerfile b/php/images/7.2.21-apache-buster/Dockerfile new file mode 100644 index 000000000..42c020679 --- /dev/null +++ b/php/images/7.2.21-apache-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-apache-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-buster/browsers-legacy/Dockerfile b/php/images/7.2.21-apache-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..acb9ab9aa --- /dev/null +++ b/php/images/7.2.21-apache-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-apache-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-buster/browsers/Dockerfile b/php/images/7.2.21-apache-buster/browsers/Dockerfile new file mode 100644 index 000000000..6a55690dd --- /dev/null +++ b/php/images/7.2.21-apache-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-apache-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.21-apache-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..d0628d6fd --- /dev/null +++ b/php/images/7.2.21-apache-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-apache-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-buster/node-browsers/Dockerfile b/php/images/7.2.21-apache-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..cc778440f --- /dev/null +++ b/php/images/7.2.21-apache-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-apache-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-buster/node/Dockerfile b/php/images/7.2.21-apache-buster/node/Dockerfile new file mode 100644 index 000000000..c9bf50572 --- /dev/null +++ b/php/images/7.2.21-apache-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-apache-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.2.21-apache-stretch/Dockerfile b/php/images/7.2.21-apache-stretch/Dockerfile new file mode 100644 index 000000000..eb9ac7853 --- /dev/null +++ b/php/images/7.2.21-apache-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-apache-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-stretch/browsers-legacy/Dockerfile b/php/images/7.2.21-apache-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..784371faa --- /dev/null +++ b/php/images/7.2.21-apache-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-apache-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-stretch/browsers/Dockerfile b/php/images/7.2.21-apache-stretch/browsers/Dockerfile new file mode 100644 index 000000000..b6cdd1cc1 --- /dev/null +++ b/php/images/7.2.21-apache-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-apache-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.21-apache-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..0bd9abf09 --- /dev/null +++ b/php/images/7.2.21-apache-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-apache-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-stretch/node-browsers/Dockerfile b/php/images/7.2.21-apache-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..1451a34c0 --- /dev/null +++ b/php/images/7.2.21-apache-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-apache-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-apache-stretch/node/Dockerfile b/php/images/7.2.21-apache-stretch/node/Dockerfile new file mode 100644 index 000000000..25e516223 --- /dev/null +++ b/php/images/7.2.21-apache-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-apache-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.2.21-cli-buster/Dockerfile b/php/images/7.2.21-cli-buster/Dockerfile new file mode 100644 index 000000000..86da2c830 --- /dev/null +++ b/php/images/7.2.21-cli-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-cli-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-buster/browsers-legacy/Dockerfile b/php/images/7.2.21-cli-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..edf2e4579 --- /dev/null +++ b/php/images/7.2.21-cli-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-cli-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-buster/browsers/Dockerfile b/php/images/7.2.21-cli-buster/browsers/Dockerfile new file mode 100644 index 000000000..bc8ae9ab3 --- /dev/null +++ b/php/images/7.2.21-cli-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-cli-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.21-cli-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..8ce9df76d --- /dev/null +++ b/php/images/7.2.21-cli-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-cli-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-buster/node-browsers/Dockerfile b/php/images/7.2.21-cli-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..960711b31 --- /dev/null +++ b/php/images/7.2.21-cli-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-cli-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-buster/node/Dockerfile b/php/images/7.2.21-cli-buster/node/Dockerfile new file mode 100644 index 000000000..a1e8da403 --- /dev/null +++ b/php/images/7.2.21-cli-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-cli-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.2.21-cli-stretch/Dockerfile b/php/images/7.2.21-cli-stretch/Dockerfile new file mode 100644 index 000000000..5954a064f --- /dev/null +++ b/php/images/7.2.21-cli-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-cli-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-stretch/browsers-legacy/Dockerfile b/php/images/7.2.21-cli-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..71262047b --- /dev/null +++ b/php/images/7.2.21-cli-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-cli-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-stretch/browsers/Dockerfile b/php/images/7.2.21-cli-stretch/browsers/Dockerfile new file mode 100644 index 000000000..f5545e964 --- /dev/null +++ b/php/images/7.2.21-cli-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-cli-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.21-cli-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..bfa4b3d4e --- /dev/null +++ b/php/images/7.2.21-cli-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-cli-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-stretch/node-browsers/Dockerfile b/php/images/7.2.21-cli-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..54c0cafcf --- /dev/null +++ b/php/images/7.2.21-cli-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-cli-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-cli-stretch/node/Dockerfile b/php/images/7.2.21-cli-stretch/node/Dockerfile new file mode 100644 index 000000000..17f1c0238 --- /dev/null +++ b/php/images/7.2.21-cli-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-cli-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.2.21-fpm-buster/Dockerfile b/php/images/7.2.21-fpm-buster/Dockerfile new file mode 100644 index 000000000..a6fdd572c --- /dev/null +++ b/php/images/7.2.21-fpm-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-fpm-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-buster/browsers-legacy/Dockerfile b/php/images/7.2.21-fpm-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..88d80695a --- /dev/null +++ b/php/images/7.2.21-fpm-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-fpm-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-buster/browsers/Dockerfile b/php/images/7.2.21-fpm-buster/browsers/Dockerfile new file mode 100644 index 000000000..6f359690a --- /dev/null +++ b/php/images/7.2.21-fpm-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-fpm-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.21-fpm-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..d17e6f262 --- /dev/null +++ b/php/images/7.2.21-fpm-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-fpm-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-buster/node-browsers/Dockerfile b/php/images/7.2.21-fpm-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..063c06ce1 --- /dev/null +++ b/php/images/7.2.21-fpm-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-fpm-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-buster/node/Dockerfile b/php/images/7.2.21-fpm-buster/node/Dockerfile new file mode 100644 index 000000000..e4c5f528c --- /dev/null +++ b/php/images/7.2.21-fpm-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-fpm-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.2.21-fpm-stretch/Dockerfile b/php/images/7.2.21-fpm-stretch/Dockerfile new file mode 100644 index 000000000..85662187e --- /dev/null +++ b/php/images/7.2.21-fpm-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-fpm-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-stretch/browsers-legacy/Dockerfile b/php/images/7.2.21-fpm-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..050d18509 --- /dev/null +++ b/php/images/7.2.21-fpm-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-fpm-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-stretch/browsers/Dockerfile b/php/images/7.2.21-fpm-stretch/browsers/Dockerfile new file mode 100644 index 000000000..3c047a6b0 --- /dev/null +++ b/php/images/7.2.21-fpm-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-fpm-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.21-fpm-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..84af197e9 --- /dev/null +++ b/php/images/7.2.21-fpm-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-fpm-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-stretch/node-browsers/Dockerfile b/php/images/7.2.21-fpm-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..5877b9cd8 --- /dev/null +++ b/php/images/7.2.21-fpm-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-fpm-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-fpm-stretch/node/Dockerfile b/php/images/7.2.21-fpm-stretch/node/Dockerfile new file mode 100644 index 000000000..f0a65bcd4 --- /dev/null +++ b/php/images/7.2.21-fpm-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-fpm-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.2.21-zts-buster/Dockerfile b/php/images/7.2.21-zts-buster/Dockerfile new file mode 100644 index 000000000..83df61a72 --- /dev/null +++ b/php/images/7.2.21-zts-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-zts-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-buster/browsers-legacy/Dockerfile b/php/images/7.2.21-zts-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..eb90f2cfe --- /dev/null +++ b/php/images/7.2.21-zts-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-zts-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-buster/browsers/Dockerfile b/php/images/7.2.21-zts-buster/browsers/Dockerfile new file mode 100644 index 000000000..c2f6c7a60 --- /dev/null +++ b/php/images/7.2.21-zts-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-zts-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.21-zts-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..48f9f3e7c --- /dev/null +++ b/php/images/7.2.21-zts-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-zts-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-buster/node-browsers/Dockerfile b/php/images/7.2.21-zts-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..f0d96db3a --- /dev/null +++ b/php/images/7.2.21-zts-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-zts-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-buster/node/Dockerfile b/php/images/7.2.21-zts-buster/node/Dockerfile new file mode 100644 index 000000000..6eb245997 --- /dev/null +++ b/php/images/7.2.21-zts-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-zts-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.2.21-zts-stretch/Dockerfile b/php/images/7.2.21-zts-stretch/Dockerfile new file mode 100644 index 000000000..ac524a754 --- /dev/null +++ b/php/images/7.2.21-zts-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.21-zts-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-stretch/browsers-legacy/Dockerfile b/php/images/7.2.21-zts-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..ee7a56dcc --- /dev/null +++ b/php/images/7.2.21-zts-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-zts-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-stretch/browsers/Dockerfile b/php/images/7.2.21-zts-stretch/browsers/Dockerfile new file mode 100644 index 000000000..0c5e9f05a --- /dev/null +++ b/php/images/7.2.21-zts-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-zts-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.21-zts-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..304b8e20c --- /dev/null +++ b/php/images/7.2.21-zts-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-zts-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-stretch/node-browsers/Dockerfile b/php/images/7.2.21-zts-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..8d52685c0 --- /dev/null +++ b/php/images/7.2.21-zts-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.2.21-zts-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.2.21-zts-stretch/node/Dockerfile b/php/images/7.2.21-zts-stretch/node/Dockerfile new file mode 100644 index 000000000..fe2dcd333 --- /dev/null +++ b/php/images/7.2.21-zts-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.21-zts-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-apache-buster/Dockerfile b/php/images/7.3.8-apache-buster/Dockerfile new file mode 100644 index 000000000..b9f2517fa --- /dev/null +++ b/php/images/7.3.8-apache-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-apache-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-buster/browsers-legacy/Dockerfile b/php/images/7.3.8-apache-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..b79a66114 --- /dev/null +++ b/php/images/7.3.8-apache-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-apache-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-buster/browsers/Dockerfile b/php/images/7.3.8-apache-buster/browsers/Dockerfile new file mode 100644 index 000000000..956ad4afa --- /dev/null +++ b/php/images/7.3.8-apache-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-apache-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.8-apache-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..e95b587ba --- /dev/null +++ b/php/images/7.3.8-apache-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-apache-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-buster/node-browsers/Dockerfile b/php/images/7.3.8-apache-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..31143d46d --- /dev/null +++ b/php/images/7.3.8-apache-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-apache-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-buster/node/Dockerfile b/php/images/7.3.8-apache-buster/node/Dockerfile new file mode 100644 index 000000000..f68b185fc --- /dev/null +++ b/php/images/7.3.8-apache-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-apache-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-apache-stretch/Dockerfile b/php/images/7.3.8-apache-stretch/Dockerfile new file mode 100644 index 000000000..d52033310 --- /dev/null +++ b/php/images/7.3.8-apache-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-apache-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-stretch/browsers-legacy/Dockerfile b/php/images/7.3.8-apache-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..efddcfe68 --- /dev/null +++ b/php/images/7.3.8-apache-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-apache-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-stretch/browsers/Dockerfile b/php/images/7.3.8-apache-stretch/browsers/Dockerfile new file mode 100644 index 000000000..b31479113 --- /dev/null +++ b/php/images/7.3.8-apache-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-apache-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.8-apache-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..bc34f1617 --- /dev/null +++ b/php/images/7.3.8-apache-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-apache-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-stretch/node-browsers/Dockerfile b/php/images/7.3.8-apache-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..d8b832109 --- /dev/null +++ b/php/images/7.3.8-apache-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-apache-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-apache-stretch/node/Dockerfile b/php/images/7.3.8-apache-stretch/node/Dockerfile new file mode 100644 index 000000000..b600bbbb7 --- /dev/null +++ b/php/images/7.3.8-apache-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-apache-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-cli-buster/Dockerfile b/php/images/7.3.8-cli-buster/Dockerfile new file mode 100644 index 000000000..776e9afe2 --- /dev/null +++ b/php/images/7.3.8-cli-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-cli-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-buster/browsers-legacy/Dockerfile b/php/images/7.3.8-cli-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..2c92bd736 --- /dev/null +++ b/php/images/7.3.8-cli-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-cli-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-buster/browsers/Dockerfile b/php/images/7.3.8-cli-buster/browsers/Dockerfile new file mode 100644 index 000000000..b1adaaea2 --- /dev/null +++ b/php/images/7.3.8-cli-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-cli-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.8-cli-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..ac93e7d63 --- /dev/null +++ b/php/images/7.3.8-cli-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-cli-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-buster/node-browsers/Dockerfile b/php/images/7.3.8-cli-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..ce85e6a1c --- /dev/null +++ b/php/images/7.3.8-cli-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-cli-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-buster/node/Dockerfile b/php/images/7.3.8-cli-buster/node/Dockerfile new file mode 100644 index 000000000..76e54280d --- /dev/null +++ b/php/images/7.3.8-cli-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-cli-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-cli-stretch/Dockerfile b/php/images/7.3.8-cli-stretch/Dockerfile new file mode 100644 index 000000000..b3df5f520 --- /dev/null +++ b/php/images/7.3.8-cli-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-cli-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-stretch/browsers-legacy/Dockerfile b/php/images/7.3.8-cli-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..31bc7c187 --- /dev/null +++ b/php/images/7.3.8-cli-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-cli-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-stretch/browsers/Dockerfile b/php/images/7.3.8-cli-stretch/browsers/Dockerfile new file mode 100644 index 000000000..49a2f4269 --- /dev/null +++ b/php/images/7.3.8-cli-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-cli-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.8-cli-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..728c4367c --- /dev/null +++ b/php/images/7.3.8-cli-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-cli-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-stretch/node-browsers/Dockerfile b/php/images/7.3.8-cli-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..4ac3aa6e4 --- /dev/null +++ b/php/images/7.3.8-cli-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-cli-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-cli-stretch/node/Dockerfile b/php/images/7.3.8-cli-stretch/node/Dockerfile new file mode 100644 index 000000000..aa868fe0e --- /dev/null +++ b/php/images/7.3.8-cli-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-cli-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-fpm-buster/Dockerfile b/php/images/7.3.8-fpm-buster/Dockerfile new file mode 100644 index 000000000..74675ea39 --- /dev/null +++ b/php/images/7.3.8-fpm-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-fpm-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-buster/browsers-legacy/Dockerfile b/php/images/7.3.8-fpm-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..942e20450 --- /dev/null +++ b/php/images/7.3.8-fpm-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-fpm-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-buster/browsers/Dockerfile b/php/images/7.3.8-fpm-buster/browsers/Dockerfile new file mode 100644 index 000000000..e4ba078d4 --- /dev/null +++ b/php/images/7.3.8-fpm-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-fpm-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.8-fpm-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..b425787e9 --- /dev/null +++ b/php/images/7.3.8-fpm-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-fpm-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-buster/node-browsers/Dockerfile b/php/images/7.3.8-fpm-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..f1a5b2720 --- /dev/null +++ b/php/images/7.3.8-fpm-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-fpm-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-buster/node/Dockerfile b/php/images/7.3.8-fpm-buster/node/Dockerfile new file mode 100644 index 000000000..fad777767 --- /dev/null +++ b/php/images/7.3.8-fpm-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-fpm-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-fpm-stretch/Dockerfile b/php/images/7.3.8-fpm-stretch/Dockerfile new file mode 100644 index 000000000..e953784bb --- /dev/null +++ b/php/images/7.3.8-fpm-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-fpm-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-stretch/browsers-legacy/Dockerfile b/php/images/7.3.8-fpm-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..f6bd33db3 --- /dev/null +++ b/php/images/7.3.8-fpm-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-fpm-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-stretch/browsers/Dockerfile b/php/images/7.3.8-fpm-stretch/browsers/Dockerfile new file mode 100644 index 000000000..cb8c4ee61 --- /dev/null +++ b/php/images/7.3.8-fpm-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-fpm-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.8-fpm-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..a4745747f --- /dev/null +++ b/php/images/7.3.8-fpm-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-fpm-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-stretch/node-browsers/Dockerfile b/php/images/7.3.8-fpm-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..5405ce933 --- /dev/null +++ b/php/images/7.3.8-fpm-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-fpm-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-fpm-stretch/node/Dockerfile b/php/images/7.3.8-fpm-stretch/node/Dockerfile new file mode 100644 index 000000000..90b4136c0 --- /dev/null +++ b/php/images/7.3.8-fpm-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-fpm-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-zts-buster/Dockerfile b/php/images/7.3.8-zts-buster/Dockerfile new file mode 100644 index 000000000..4cdbc58a6 --- /dev/null +++ b/php/images/7.3.8-zts-buster/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-zts-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-buster/browsers-legacy/Dockerfile b/php/images/7.3.8-zts-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..2eaab0ee4 --- /dev/null +++ b/php/images/7.3.8-zts-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-zts-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-buster/browsers/Dockerfile b/php/images/7.3.8-zts-buster/browsers/Dockerfile new file mode 100644 index 000000000..e86f26941 --- /dev/null +++ b/php/images/7.3.8-zts-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-zts-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.8-zts-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..561288ee6 --- /dev/null +++ b/php/images/7.3.8-zts-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-zts-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-buster/node-browsers/Dockerfile b/php/images/7.3.8-zts-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..fe59d4eb3 --- /dev/null +++ b/php/images/7.3.8-zts-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-zts-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-buster/node/Dockerfile b/php/images/7.3.8-zts-buster/node/Dockerfile new file mode 100644 index 000000000..daea4b006 --- /dev/null +++ b/php/images/7.3.8-zts-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-zts-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/php/images/7.3.8-zts-stretch/Dockerfile b/php/images/7.3.8-zts-stretch/Dockerfile new file mode 100644 index 000000000..ca5497bcc --- /dev/null +++ b/php/images/7.3.8-zts-stretch/Dockerfile @@ -0,0 +1,113 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.8-zts-stretch + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +RUN echo 'Defaults env_keep += "PHP_INI_DIR"' >> /etc/sudoers.d/env_keep + +# Install composer +RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + php -r "unlink('composer-setup.php');" && \ + mv composer.phar /usr/local/bin/composer + +# Install XDebug +RUN (pecl install xdebug || pecl install xdebug-2.5.5 || pecl install xdebug-2.7.1) && docker-php-ext-enable xdebug + +# Install common extensions +RUN apt install -y libicu-dev zlib1g-dev libzip-dev && \ + rm -rf /var/lib/apt/lists/* +RUN docker-php-ext-configure intl && docker-php-ext-install intl +RUN docker-php-ext-install zip +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-stretch/browsers-legacy/Dockerfile b/php/images/7.3.8-zts-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..39363cd03 --- /dev/null +++ b/php/images/7.3.8-zts-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-zts-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-stretch/browsers/Dockerfile b/php/images/7.3.8-zts-stretch/browsers/Dockerfile new file mode 100644 index 000000000..af31edd88 --- /dev/null +++ b/php/images/7.3.8-zts-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-zts-stretch + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.8-zts-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..ca154d77f --- /dev/null +++ b/php/images/7.3.8-zts-stretch/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-zts-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-stretch/node-browsers/Dockerfile b/php/images/7.3.8-zts-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..dce1f2be2 --- /dev/null +++ b/php/images/7.3.8-zts-stretch/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/php:7.3.8-zts-stretch-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/php/images/7.3.8-zts-stretch/node/Dockerfile b/php/images/7.3.8-zts-stretch/node/Dockerfile new file mode 100644 index 000000000..3b0a66bac --- /dev/null +++ b/php/images/7.3.8-zts-stretch/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.8-zts-stretch + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/python/images/2.7.16-buster/node/Dockerfile b/python/images/2.7.16-buster/node/Dockerfile index ab1421d27..ffa573aa3 100644 --- a/python/images/2.7.16-buster/node/Dockerfile +++ b/python/images/2.7.16-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/2.7.16-stretch/node/Dockerfile b/python/images/2.7.16-stretch/node/Dockerfile index 6bd7e56e3..9a9d56dbc 100644 --- a/python/images/2.7.16-stretch/node/Dockerfile +++ b/python/images/2.7.16-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/2.7.16/node/Dockerfile b/python/images/2.7.16/node/Dockerfile index cbf5ab225..621c1f52e 100644 --- a/python/images/2.7.16/node/Dockerfile +++ b/python/images/2.7.16/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.5.7-buster/node/Dockerfile b/python/images/3.5.7-buster/node/Dockerfile index 984a9285f..1fee87116 100644 --- a/python/images/3.5.7-buster/node/Dockerfile +++ b/python/images/3.5.7-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.5.7-stretch/node/Dockerfile b/python/images/3.5.7-stretch/node/Dockerfile index a1e801fc8..3e6b27bff 100644 --- a/python/images/3.5.7-stretch/node/Dockerfile +++ b/python/images/3.5.7-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.5.7/node/Dockerfile b/python/images/3.5.7/node/Dockerfile index bc816d5ca..c1763c2c0 100644 --- a/python/images/3.5.7/node/Dockerfile +++ b/python/images/3.5.7/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.6.9-buster/node/Dockerfile b/python/images/3.6.9-buster/node/Dockerfile index fc48885ff..54ea9d314 100644 --- a/python/images/3.6.9-buster/node/Dockerfile +++ b/python/images/3.6.9-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.6.9-stretch/node/Dockerfile b/python/images/3.6.9-stretch/node/Dockerfile index 5fcc3bb9a..8c284d241 100644 --- a/python/images/3.6.9-stretch/node/Dockerfile +++ b/python/images/3.6.9-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.6.9/node/Dockerfile b/python/images/3.6.9/node/Dockerfile index 1bc6f15e3..5ccd4693a 100644 --- a/python/images/3.6.9/node/Dockerfile +++ b/python/images/3.6.9/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.7.4-buster/node/Dockerfile b/python/images/3.7.4-buster/node/Dockerfile index 0950c7c41..00ff3037e 100644 --- a/python/images/3.7.4-buster/node/Dockerfile +++ b/python/images/3.7.4-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.7.4-stretch/node/Dockerfile b/python/images/3.7.4-stretch/node/Dockerfile index 80a2a3604..d5e1c3968 100644 --- a/python/images/3.7.4-stretch/node/Dockerfile +++ b/python/images/3.7.4-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.7.4/node/Dockerfile b/python/images/3.7.4/node/Dockerfile index 4592ee670..1750e7096 100644 --- a/python/images/3.7.4/node/Dockerfile +++ b/python/images/3.7.4/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/python/images/3.8.0b3-buster/Dockerfile b/python/images/3.8.0b3-buster/Dockerfile new file mode 100644 index 000000000..a6135fc9f --- /dev/null +++ b/python/images/3.8.0b3-buster/Dockerfile @@ -0,0 +1,99 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM python:3.8.0b3-buster + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +# Install pipenv and poetry +RUN sudo pip install --no-cache pipenv poetry +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3-buster/browsers-legacy/Dockerfile b/python/images/3.8.0b3-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..28fc13540 --- /dev/null +++ b/python/images/3.8.0b3-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/python:3.8.0b3-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3-buster/browsers/Dockerfile b/python/images/3.8.0b3-buster/browsers/Dockerfile new file mode 100644 index 000000000..aa4857dce --- /dev/null +++ b/python/images/3.8.0b3-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/python:3.8.0b3-buster + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3-buster/node-browsers-legacy/Dockerfile b/python/images/3.8.0b3-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..37fdb18e0 --- /dev/null +++ b/python/images/3.8.0b3-buster/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/python:3.8.0b3-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3-buster/node-browsers/Dockerfile b/python/images/3.8.0b3-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..7f31c0c4f --- /dev/null +++ b/python/images/3.8.0b3-buster/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/python:3.8.0b3-buster-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3-buster/node/Dockerfile b/python/images/3.8.0b3-buster/node/Dockerfile new file mode 100644 index 000000000..0b8f5e239 --- /dev/null +++ b/python/images/3.8.0b3-buster/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/python:3.8.0b3-buster + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/python/images/3.8.0b3/Dockerfile b/python/images/3.8.0b3/Dockerfile new file mode 100644 index 000000000..6166c825d --- /dev/null +++ b/python/images/3.8.0b3/Dockerfile @@ -0,0 +1,99 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM python:3.8.0b3 + +# make Apt non-interactive +RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ + && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci + +ENV DEBIAN_FRONTEND=noninteractive + +# Debian Jessie is EOL'd and original repos don't work. +# Switch to the archive mirror until we can get people to +# switch to Stretch. +RUN if grep -q Debian /etc/os-release && grep -q jessie /etc/os-release; then \ + rm /etc/apt/sources.list \ + && echo "deb http://archive.debian.org/debian/ jessie main" >> /etc/apt/sources.list \ + && echo "deb http://security.debian.org/debian-security jessie/updates main" >> /etc/apt/sources.list \ + ; fi + +# Make sure PATH includes ~/.local/bin +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=839155 +RUN echo 'PATH="$HOME/.local/bin:$PATH"' >> /etc/profile.d/user-local-path.sh + +# man directory is missing in some base images +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863199 +RUN apt-get update \ + && mkdir -p /usr/share/man/man1 \ + && apt-get install -y \ + git mercurial xvfb apt \ + locales sudo openssh-client ca-certificates tar gzip parallel \ + net-tools netcat unzip zip bzip2 gnupg curl wget make + + +# Set timezone to UTC by default +RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime + +# Use unicode +RUN locale-gen C.UTF-8 || true +ENV LANG=C.UTF-8 + +# install jq +RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \ + && chmod +x /usr/bin/jq \ + && jq --version + +# Install Docker + +# Docker.com returns the URL of the latest binary when you hit a directory listing +# We curl this URL and `grep` the version out. +# The output looks like this: + +#> # To install, run the following commands as root: +#> curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-17.05.0-ce.tgz && tar --strip-components=1 -xvzf docker-17.05.0-ce.tgz -C /usr/local/bin +#> +#> # Then start docker in daemon mode: +#> /usr/local/bin/dockerd + +RUN set -ex \ + && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*\.tgz' | sort -r | head -n 1) \ + && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \ + && echo Docker URL: $DOCKER_URL \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ + && ls -lha /tmp/docker.tgz \ + && tar -xz -C /tmp -f /tmp/docker.tgz \ + && mv /tmp/docker/* /usr/bin \ + && rm -rf /tmp/docker /tmp/docker.tgz \ + && which docker \ + && (docker version || true) + +# docker compose +RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \ + && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ + && chmod +x /usr/bin/docker-compose \ + && docker-compose version + +# install dockerize +RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \ + && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \ + && rm -rf /tmp/dockerize-linux-amd64.tar.gz \ + && dockerize --version + +RUN groupadd --gid 3434 circleci \ + && useradd --uid 3434 --gid circleci --shell /bin/bash --create-home circleci \ + && echo 'circleci ALL=NOPASSWD: ALL' >> /etc/sudoers.d/50-circleci \ + && echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep + +# BEGIN IMAGE CUSTOMIZATIONS + +# Install pipenv and poetry +RUN sudo pip install --no-cache pipenv poetry +# END IMAGE CUSTOMIZATIONS + +USER circleci + +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3/browsers-legacy/Dockerfile b/python/images/3.8.0b3/browsers-legacy/Dockerfile new file mode 100644 index 000000000..8491af9e9 --- /dev/null +++ b/python/images/3.8.0b3/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/python:3.8.0b3 + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3/browsers/Dockerfile b/python/images/3.8.0b3/browsers/Dockerfile new file mode 100644 index 000000000..685391dfe --- /dev/null +++ b/python/images/3.8.0b3/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/python:3.8.0b3 + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3/node-browsers-legacy/Dockerfile b/python/images/3.8.0b3/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..d408d8432 --- /dev/null +++ b/python/images/3.8.0b3/node-browsers-legacy/Dockerfile @@ -0,0 +1,91 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/python:3.8.0b3-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +ENV OPENSSL_CONF / + +## install phantomjs +# +RUN PHANTOMJS_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/phantomjs-latest.tar.bz2" \ + && sudo apt-get install libfontconfig \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/phantomjs.tar.bz2 ${PHANTOMJS_URL} \ + && tar -x -C /tmp -f /tmp/phantomjs.tar.bz2 \ + && sudo mv /tmp/phantomjs-*-linux-x86_64/bin/phantomjs /usr/local/bin \ + && rm -rf /tmp/phantomjs.tar.bz2 /tmp/phantomjs-* \ + && phantomjs --version + +# install firefox + +# If you are upgrading to any version newer than 47.0.1, you must check the compatibility with +# selenium. See https://github.com/SeleniumHQ/selenium/issues/2559#issuecomment-237079591 + +RUN FIREFOX_URL="https://s3.amazonaws.com/circle-downloads/firefox-mozilla-build_47.0.1-0ubuntu1_amd64.deb" \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.deb $FIREFOX_URL \ + && echo 'ef016febe5ec4eaf7d455a34579834bcde7703cb0818c80044f4d148df8473bb /tmp/firefox.deb' | sha256sum -c \ + && sudo dpkg -i /tmp/firefox.deb || sudo apt-get -f install \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.deb \ + && firefox --version + +# install geckodriver—disabling this temporarily, we will likely want this code in the future, but until we're ready to upgrade our version of firefox to 53+, geckodriver wont' be compatible... + +# RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ +# && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ +# && cd /tmp \ +# && tar xf geckodriver_linux64.tar.gz \ +# && rm -rf geckodriver_linux64.tar.gz \ +# && sudo mv geckodriver /usr/local/bin/geckodriver \ +# && sudo chmod +x /usr/local/bin/geckodriver \ +# && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# install libgconf-2-4 manually since chrome no longer pulls it in automatically +RUN sudo apt-get install -y libgconf-2-4 + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3/node-browsers/Dockerfile b/python/images/3.8.0b3/node-browsers/Dockerfile new file mode 100644 index 000000000..826d9a75f --- /dev/null +++ b/python/images/3.8.0b3/node-browsers/Dockerfile @@ -0,0 +1,74 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +# +# DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +# +FROM circleci/python:3.8.0b3-node + +# +# Install Java 11 LTS / OpenJDK 11 +# +RUN if grep -q Debian /etc/os-release && grep -q stretch /etc/os-release; then \ + echo 'deb http://deb.debian.org/debian stretch-backports main' | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list; \ + elif grep -q Ubuntu /etc/os-release && grep -q xenial /etc/os-release; then \ + sudo apt-get update && sudo apt-get install -y software-properties-common && \ + sudo add-apt-repository -y ppa:openjdk-r/ppa; \ + fi && \ + sudo apt-get update && sudo apt-get install -y openjdk-11-jre openjdk-11-jre-headless openjdk-11-jdk openjdk-11-jdk-headless && \ + sudo apt-get install -y bzip2 libgconf-2-4 # for extracting firefox and running chrome, respectively + +# install firefox +# +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ + && sudo tar -xvjf /tmp/firefox.tar.bz2 -C /opt \ + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ + && rm -rf /tmp/firefox.* \ + && firefox --version + +# install geckodriver + +RUN export GECKODRIVER_LATEST_RELEASE_URL=$(curl https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".assets[] | select(.name | test(\"linux64\")) | .browser_download_url") \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/geckodriver_linux64.tar.gz "$GECKODRIVER_LATEST_RELEASE_URL" \ + && cd /tmp \ + && tar xf geckodriver_linux64.tar.gz \ + && rm -rf geckodriver_linux64.tar.gz \ + && sudo mv geckodriver /usr/local/bin/geckodriver \ + && sudo chmod +x /usr/local/bin/geckodriver \ + && geckodriver --version + +# install chrome + +RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \ + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \ + "/opt/google/chrome/google-chrome" \ + && google-chrome --version + +RUN CHROME_VERSION="$(google-chrome --version)" \ + && export CHROMEDRIVER_RELEASE="$(echo $CHROME_VERSION | sed 's/^Google Chrome //')" && export CHROMEDRIVER_RELEASE=${CHROMEDRIVER_RELEASE%%.*} \ + && CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip" \ + && cd /tmp \ + && unzip chromedriver_linux64.zip \ + && rm -rf chromedriver_linux64.zip \ + && sudo mv chromedriver /usr/local/bin/chromedriver \ + && sudo chmod +x /usr/local/bin/chromedriver \ + && chromedriver --version + +# start xvfb automatically to avoid needing to express in circle.yml +ENV DISPLAY :99 +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint \ + && chmod +x /tmp/entrypoint \ + && sudo mv /tmp/entrypoint /docker-entrypoint.sh + +# ensure that the build agent doesn't override the entrypoint +LABEL com.circleci.preserve-entrypoint=true + +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["/bin/sh"] diff --git a/python/images/3.8.0b3/node/Dockerfile b/python/images/3.8.0b3/node/Dockerfile new file mode 100644 index 000000000..0a9ea9a4b --- /dev/null +++ b/python/images/3.8.0b3/node/Dockerfile @@ -0,0 +1,84 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/python:3.8.0b3 + +# Verify the circleci user exists before proceeding +RUN whoami + +# node installations command expect to run as root +USER root +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.1 + +RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ + && case "${dpkgArch##*-}" in \ + amd64) ARCH='x64';; \ + ppc64el) ARCH='ppc64le';; \ + s390x) ARCH='s390x';; \ + arm64) ARCH='arm64';; \ + armhf) ARCH='armv7l';; \ + i386) ARCH='x86';; \ + *) echo "unsupported architecture"; exit 1 ;; \ + esac \ + # gpg keys listed at https://github.com/nodejs/node#release-keys + && set -ex \ + && for key in \ + 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ + FD3A5288F042B6850C66B31F09FE44734EB7990E \ + 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ + DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ + C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ + B9AE9905FFD7803F25714661B63B535A4C206CA9 \ + 77984A986EBC2AA786BC0F66B01FBB92821C587A \ + 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ + 4ED778F539E3634C779C87C6D7062848A1AB005C \ + A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ + B9E2F5981AA6E0CD28160D9FF13993A75599653C \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ + done \ + && 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 --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 + +ENV YARN_VERSION 1.17.3 + +RUN set -ex \ + && for key in \ + 6A010C5166006599AA17F08146C2130DFD2497F5 \ + ; do \ + gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ + gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ + gpg --batch --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 + + + +# Basic smoke test +RUN node --version + +USER circleci diff --git a/ruby/images/2.4.6-buster/node/Dockerfile b/ruby/images/2.4.6-buster/node/Dockerfile index 4820ad4ed..9f260d35c 100644 --- a/ruby/images/2.4.6-buster/node/Dockerfile +++ b/ruby/images/2.4.6-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/ruby/images/2.4.6-stretch/node/Dockerfile b/ruby/images/2.4.6-stretch/node/Dockerfile index 506320868..5ed55ac03 100644 --- a/ruby/images/2.4.6-stretch/node/Dockerfile +++ b/ruby/images/2.4.6-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/ruby/images/2.5.5-buster/node/Dockerfile b/ruby/images/2.5.5-buster/node/Dockerfile index cd0d2663b..0806d8ae0 100644 --- a/ruby/images/2.5.5-buster/node/Dockerfile +++ b/ruby/images/2.5.5-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/ruby/images/2.5.5-stretch/node/Dockerfile b/ruby/images/2.5.5-stretch/node/Dockerfile index 5eafc523d..f28c85cbc 100644 --- a/ruby/images/2.5.5-stretch/node/Dockerfile +++ b/ruby/images/2.5.5-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/ruby/images/2.6.3-buster/node/Dockerfile b/ruby/images/2.6.3-buster/node/Dockerfile index 1848e817f..7c8096a2d 100644 --- a/ruby/images/2.6.3-buster/node/Dockerfile +++ b/ruby/images/2.6.3-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/ruby/images/2.6.3-stretch/node/Dockerfile b/ruby/images/2.6.3-stretch/node/Dockerfile index aa12ee476..011edb24f 100644 --- a/ruby/images/2.6.3-stretch/node/Dockerfile +++ b/ruby/images/2.6.3-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/rust/images/1.36.0-buster/node/Dockerfile b/rust/images/1.36.0-buster/node/Dockerfile index d16f2fd38..f28f1ba36 100644 --- a/rust/images/1.36.0-buster/node/Dockerfile +++ b/rust/images/1.36.0-buster/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \ diff --git a/rust/images/1.36.0-stretch/node/Dockerfile b/rust/images/1.36.0-stretch/node/Dockerfile index c9b566b3a..84acf86dc 100644 --- a/rust/images/1.36.0-stretch/node/Dockerfile +++ b/rust/images/1.36.0-stretch/node/Dockerfile @@ -13,12 +13,12 @@ RUN whoami # node installations command expect to run as root USER root -## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f8f2384f7edc345f5ffc0496458005981b512882/10/stretch/Dockerfile +## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/f5b60750fedd5df9a17cf9645a8f6dc04608e721/10/stretch/Dockerfile RUN groupadd --gid 1000 node \ && useradd --uid 1000 --gid node --shell /bin/bash --create-home node -ENV NODE_VERSION 10.16.0 +ENV NODE_VERSION 10.16.1 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -57,7 +57,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 -ENV YARN_VERSION 1.16.0 +ENV YARN_VERSION 1.17.3 RUN set -ex \ && for key in \