From 9f0632a8dbf9776493a80514b2cf839c02b36d32 Mon Sep 17 00:00:00 2001 From: felicianotech Date: Fri, 27 Sep 2019 00:01:35 +0000 Subject: [PATCH] Dockerfiles from https://circleci.com/gh/circleci/circleci-images/26587 --- php/images/7.2.23-apache-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-apache-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ .../7.2.23-apache-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.2.23-apache-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-apache-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ .../7.2.23-apache-stretch/node/Dockerfile | 84 +++++++++++++ php/images/7.2.23-cli-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-cli-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.2.23-cli-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.2.23-cli-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-cli-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.2.23-cli-stretch/node/Dockerfile | 84 +++++++++++++ php/images/7.2.23-fpm-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-fpm-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.2.23-fpm-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.2.23-fpm-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-fpm-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.2.23-fpm-stretch/node/Dockerfile | 84 +++++++++++++ php/images/7.2.23-zts-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-zts-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.2.23-zts-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.2.23-zts-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.2.23-zts-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.2.23-zts-stretch/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-apache-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-apache-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ .../7.3.10-apache-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-apache-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-apache-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ .../7.3.10-apache-stretch/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-cli-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-cli-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.3.10-cli-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-cli-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-cli-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.3.10-cli-stretch/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-fpm-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-fpm-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.3.10-fpm-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-fpm-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-fpm-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.3.10-fpm-stretch/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-zts-buster/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-zts-buster/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.3.10-zts-buster/node/Dockerfile | 84 +++++++++++++ php/images/7.3.10-zts-stretch/Dockerfile | 115 ++++++++++++++++++ .../browsers-legacy/Dockerfile | 88 ++++++++++++++ .../7.3.10-zts-stretch/browsers/Dockerfile | 71 +++++++++++ .../node-browsers-legacy/Dockerfile | 91 ++++++++++++++ .../node-browsers/Dockerfile | 74 +++++++++++ php/images/7.3.10-zts-stretch/node/Dockerfile | 84 +++++++++++++ 96 files changed, 8368 insertions(+) create mode 100644 php/images/7.2.23-apache-buster/Dockerfile create mode 100644 php/images/7.2.23-apache-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-apache-buster/browsers/Dockerfile create mode 100644 php/images/7.2.23-apache-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-apache-buster/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-apache-buster/node/Dockerfile create mode 100644 php/images/7.2.23-apache-stretch/Dockerfile create mode 100644 php/images/7.2.23-apache-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-apache-stretch/browsers/Dockerfile create mode 100644 php/images/7.2.23-apache-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-apache-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-apache-stretch/node/Dockerfile create mode 100644 php/images/7.2.23-cli-buster/Dockerfile create mode 100644 php/images/7.2.23-cli-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-cli-buster/browsers/Dockerfile create mode 100644 php/images/7.2.23-cli-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-cli-buster/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-cli-buster/node/Dockerfile create mode 100644 php/images/7.2.23-cli-stretch/Dockerfile create mode 100644 php/images/7.2.23-cli-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-cli-stretch/browsers/Dockerfile create mode 100644 php/images/7.2.23-cli-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-cli-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-cli-stretch/node/Dockerfile create mode 100644 php/images/7.2.23-fpm-buster/Dockerfile create mode 100644 php/images/7.2.23-fpm-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-fpm-buster/browsers/Dockerfile create mode 100644 php/images/7.2.23-fpm-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-fpm-buster/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-fpm-buster/node/Dockerfile create mode 100644 php/images/7.2.23-fpm-stretch/Dockerfile create mode 100644 php/images/7.2.23-fpm-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-fpm-stretch/browsers/Dockerfile create mode 100644 php/images/7.2.23-fpm-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-fpm-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-fpm-stretch/node/Dockerfile create mode 100644 php/images/7.2.23-zts-buster/Dockerfile create mode 100644 php/images/7.2.23-zts-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-zts-buster/browsers/Dockerfile create mode 100644 php/images/7.2.23-zts-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-zts-buster/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-zts-buster/node/Dockerfile create mode 100644 php/images/7.2.23-zts-stretch/Dockerfile create mode 100644 php/images/7.2.23-zts-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-zts-stretch/browsers/Dockerfile create mode 100644 php/images/7.2.23-zts-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.2.23-zts-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.2.23-zts-stretch/node/Dockerfile create mode 100644 php/images/7.3.10-apache-buster/Dockerfile create mode 100644 php/images/7.3.10-apache-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-apache-buster/browsers/Dockerfile create mode 100644 php/images/7.3.10-apache-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-apache-buster/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-apache-buster/node/Dockerfile create mode 100644 php/images/7.3.10-apache-stretch/Dockerfile create mode 100644 php/images/7.3.10-apache-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-apache-stretch/browsers/Dockerfile create mode 100644 php/images/7.3.10-apache-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-apache-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-apache-stretch/node/Dockerfile create mode 100644 php/images/7.3.10-cli-buster/Dockerfile create mode 100644 php/images/7.3.10-cli-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-cli-buster/browsers/Dockerfile create mode 100644 php/images/7.3.10-cli-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-cli-buster/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-cli-buster/node/Dockerfile create mode 100644 php/images/7.3.10-cli-stretch/Dockerfile create mode 100644 php/images/7.3.10-cli-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-cli-stretch/browsers/Dockerfile create mode 100644 php/images/7.3.10-cli-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-cli-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-cli-stretch/node/Dockerfile create mode 100644 php/images/7.3.10-fpm-buster/Dockerfile create mode 100644 php/images/7.3.10-fpm-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-fpm-buster/browsers/Dockerfile create mode 100644 php/images/7.3.10-fpm-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-fpm-buster/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-fpm-buster/node/Dockerfile create mode 100644 php/images/7.3.10-fpm-stretch/Dockerfile create mode 100644 php/images/7.3.10-fpm-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-fpm-stretch/browsers/Dockerfile create mode 100644 php/images/7.3.10-fpm-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-fpm-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-fpm-stretch/node/Dockerfile create mode 100644 php/images/7.3.10-zts-buster/Dockerfile create mode 100644 php/images/7.3.10-zts-buster/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-zts-buster/browsers/Dockerfile create mode 100644 php/images/7.3.10-zts-buster/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-zts-buster/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-zts-buster/node/Dockerfile create mode 100644 php/images/7.3.10-zts-stretch/Dockerfile create mode 100644 php/images/7.3.10-zts-stretch/browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-zts-stretch/browsers/Dockerfile create mode 100644 php/images/7.3.10-zts-stretch/node-browsers-legacy/Dockerfile create mode 100644 php/images/7.3.10-zts-stretch/node-browsers/Dockerfile create mode 100644 php/images/7.3.10-zts-stretch/node/Dockerfile diff --git a/php/images/7.2.23-apache-buster/Dockerfile b/php/images/7.2.23-apache-buster/Dockerfile new file mode 100644 index 000000000..2c88a4b25 --- /dev/null +++ b/php/images/7.2.23-apache-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-apache-buster/browsers-legacy/Dockerfile b/php/images/7.2.23-apache-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..cc3e9f97d --- /dev/null +++ b/php/images/7.2.23-apache-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-buster/browsers/Dockerfile b/php/images/7.2.23-apache-buster/browsers/Dockerfile new file mode 100644 index 000000000..2f244ab1c --- /dev/null +++ b/php/images/7.2.23-apache-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.23-apache-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..e6878ff4e --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-buster/node-browsers/Dockerfile b/php/images/7.2.23-apache-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..4239258b1 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-buster/node/Dockerfile b/php/images/7.2.23-apache-buster/node/Dockerfile new file mode 100644 index 000000000..62a1aecc1 --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.23-apache-stretch/Dockerfile b/php/images/7.2.23-apache-stretch/Dockerfile new file mode 100644 index 000000000..9c9dc2371 --- /dev/null +++ b/php/images/7.2.23-apache-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-apache-stretch/browsers-legacy/Dockerfile b/php/images/7.2.23-apache-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..8abcb724c --- /dev/null +++ b/php/images/7.2.23-apache-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-stretch/browsers/Dockerfile b/php/images/7.2.23-apache-stretch/browsers/Dockerfile new file mode 100644 index 000000000..0aead1f98 --- /dev/null +++ b/php/images/7.2.23-apache-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.23-apache-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..09c8deb69 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-stretch/node-browsers/Dockerfile b/php/images/7.2.23-apache-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..c68ebf494 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-apache-stretch/node/Dockerfile b/php/images/7.2.23-apache-stretch/node/Dockerfile new file mode 100644 index 000000000..ba178fad9 --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.23-cli-buster/Dockerfile b/php/images/7.2.23-cli-buster/Dockerfile new file mode 100644 index 000000000..20f7146cd --- /dev/null +++ b/php/images/7.2.23-cli-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-cli-buster/browsers-legacy/Dockerfile b/php/images/7.2.23-cli-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..6931bb763 --- /dev/null +++ b/php/images/7.2.23-cli-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-buster/browsers/Dockerfile b/php/images/7.2.23-cli-buster/browsers/Dockerfile new file mode 100644 index 000000000..3edefd653 --- /dev/null +++ b/php/images/7.2.23-cli-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.23-cli-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..b28ed2be5 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-buster/node-browsers/Dockerfile b/php/images/7.2.23-cli-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..4c6a5e379 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-buster/node/Dockerfile b/php/images/7.2.23-cli-buster/node/Dockerfile new file mode 100644 index 000000000..ee948ef4c --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.23-cli-stretch/Dockerfile b/php/images/7.2.23-cli-stretch/Dockerfile new file mode 100644 index 000000000..07e411a70 --- /dev/null +++ b/php/images/7.2.23-cli-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-cli-stretch/browsers-legacy/Dockerfile b/php/images/7.2.23-cli-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..59dd993d8 --- /dev/null +++ b/php/images/7.2.23-cli-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-stretch/browsers/Dockerfile b/php/images/7.2.23-cli-stretch/browsers/Dockerfile new file mode 100644 index 000000000..f613dfbc6 --- /dev/null +++ b/php/images/7.2.23-cli-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.23-cli-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..44f780dfb --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-stretch/node-browsers/Dockerfile b/php/images/7.2.23-cli-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..274992d5e --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-cli-stretch/node/Dockerfile b/php/images/7.2.23-cli-stretch/node/Dockerfile new file mode 100644 index 000000000..fdf3e2464 --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.23-fpm-buster/Dockerfile b/php/images/7.2.23-fpm-buster/Dockerfile new file mode 100644 index 000000000..e3e88a6cb --- /dev/null +++ b/php/images/7.2.23-fpm-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-fpm-buster/browsers-legacy/Dockerfile b/php/images/7.2.23-fpm-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..eb7c6faca --- /dev/null +++ b/php/images/7.2.23-fpm-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-buster/browsers/Dockerfile b/php/images/7.2.23-fpm-buster/browsers/Dockerfile new file mode 100644 index 000000000..e35b8f850 --- /dev/null +++ b/php/images/7.2.23-fpm-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.23-fpm-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..ec58f2ac7 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-buster/node-browsers/Dockerfile b/php/images/7.2.23-fpm-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..88158102c --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-buster/node/Dockerfile b/php/images/7.2.23-fpm-buster/node/Dockerfile new file mode 100644 index 000000000..ed360ab21 --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.23-fpm-stretch/Dockerfile b/php/images/7.2.23-fpm-stretch/Dockerfile new file mode 100644 index 000000000..47c574a48 --- /dev/null +++ b/php/images/7.2.23-fpm-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-fpm-stretch/browsers-legacy/Dockerfile b/php/images/7.2.23-fpm-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..1418d5dbf --- /dev/null +++ b/php/images/7.2.23-fpm-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-stretch/browsers/Dockerfile b/php/images/7.2.23-fpm-stretch/browsers/Dockerfile new file mode 100644 index 000000000..c3cb0cf14 --- /dev/null +++ b/php/images/7.2.23-fpm-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.23-fpm-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..eb96a1801 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-stretch/node-browsers/Dockerfile b/php/images/7.2.23-fpm-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..ac43965c7 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-fpm-stretch/node/Dockerfile b/php/images/7.2.23-fpm-stretch/node/Dockerfile new file mode 100644 index 000000000..3b3da2688 --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.23-zts-buster/Dockerfile b/php/images/7.2.23-zts-buster/Dockerfile new file mode 100644 index 000000000..0fb6b5d89 --- /dev/null +++ b/php/images/7.2.23-zts-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-zts-buster/browsers-legacy/Dockerfile b/php/images/7.2.23-zts-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..6fb646a26 --- /dev/null +++ b/php/images/7.2.23-zts-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-buster/browsers/Dockerfile b/php/images/7.2.23-zts-buster/browsers/Dockerfile new file mode 100644 index 000000000..4513c4ffb --- /dev/null +++ b/php/images/7.2.23-zts-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-buster/node-browsers-legacy/Dockerfile b/php/images/7.2.23-zts-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..bc6717a77 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-buster/node-browsers/Dockerfile b/php/images/7.2.23-zts-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..9addeb74a --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-buster/node/Dockerfile b/php/images/7.2.23-zts-buster/node/Dockerfile new file mode 100644 index 000000000..931f797e6 --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.23-zts-stretch/Dockerfile b/php/images/7.2.23-zts-stretch/Dockerfile new file mode 100644 index 000000000..17ae1ee95 --- /dev/null +++ b/php/images/7.2.23-zts-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.2.23-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.2.23-zts-stretch/browsers-legacy/Dockerfile b/php/images/7.2.23-zts-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..432300b46 --- /dev/null +++ b/php/images/7.2.23-zts-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-stretch/browsers/Dockerfile b/php/images/7.2.23-zts-stretch/browsers/Dockerfile new file mode 100644 index 000000000..e55fbc2f5 --- /dev/null +++ b/php/images/7.2.23-zts-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.2.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-stretch/node-browsers-legacy/Dockerfile b/php/images/7.2.23-zts-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..6534cd5e8 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-stretch/node-browsers/Dockerfile b/php/images/7.2.23-zts-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..f38d93d15 --- /dev/null +++ b/php/images/7.2.23-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.23-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.23-zts-stretch/node/Dockerfile b/php/images/7.2.23-zts-stretch/node/Dockerfile new file mode 100644 index 000000000..84b45f437 --- /dev/null +++ b/php/images/7.2.23-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.23-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-apache-buster/Dockerfile b/php/images/7.3.10-apache-buster/Dockerfile new file mode 100644 index 000000000..19ca378c3 --- /dev/null +++ b/php/images/7.3.10-apache-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-apache-buster/browsers-legacy/Dockerfile b/php/images/7.3.10-apache-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..7dbef400c --- /dev/null +++ b/php/images/7.3.10-apache-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-buster/browsers/Dockerfile b/php/images/7.3.10-apache-buster/browsers/Dockerfile new file mode 100644 index 000000000..bd6cfeea1 --- /dev/null +++ b/php/images/7.3.10-apache-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.10-apache-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..6b4f41c07 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-buster/node-browsers/Dockerfile b/php/images/7.3.10-apache-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..8a79d31a2 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-buster/node/Dockerfile b/php/images/7.3.10-apache-buster/node/Dockerfile new file mode 100644 index 000000000..0e693f6bf --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-apache-stretch/Dockerfile b/php/images/7.3.10-apache-stretch/Dockerfile new file mode 100644 index 000000000..d1522f7ba --- /dev/null +++ b/php/images/7.3.10-apache-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-apache-stretch/browsers-legacy/Dockerfile b/php/images/7.3.10-apache-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..19a21a7ad --- /dev/null +++ b/php/images/7.3.10-apache-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-stretch/browsers/Dockerfile b/php/images/7.3.10-apache-stretch/browsers/Dockerfile new file mode 100644 index 000000000..b2f0b3b62 --- /dev/null +++ b/php/images/7.3.10-apache-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.10-apache-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..1d87b6612 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-stretch/node-browsers/Dockerfile b/php/images/7.3.10-apache-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..c0b82fb32 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-apache-stretch/node/Dockerfile b/php/images/7.3.10-apache-stretch/node/Dockerfile new file mode 100644 index 000000000..dedea3b39 --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-cli-buster/Dockerfile b/php/images/7.3.10-cli-buster/Dockerfile new file mode 100644 index 000000000..b3db3324a --- /dev/null +++ b/php/images/7.3.10-cli-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-cli-buster/browsers-legacy/Dockerfile b/php/images/7.3.10-cli-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..76d091c10 --- /dev/null +++ b/php/images/7.3.10-cli-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-buster/browsers/Dockerfile b/php/images/7.3.10-cli-buster/browsers/Dockerfile new file mode 100644 index 000000000..88cff71da --- /dev/null +++ b/php/images/7.3.10-cli-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.10-cli-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..9151f9f30 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-buster/node-browsers/Dockerfile b/php/images/7.3.10-cli-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..155de7708 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-buster/node/Dockerfile b/php/images/7.3.10-cli-buster/node/Dockerfile new file mode 100644 index 000000000..076406c0d --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-cli-stretch/Dockerfile b/php/images/7.3.10-cli-stretch/Dockerfile new file mode 100644 index 000000000..de5a4d0b2 --- /dev/null +++ b/php/images/7.3.10-cli-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-cli-stretch/browsers-legacy/Dockerfile b/php/images/7.3.10-cli-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..ad07dc704 --- /dev/null +++ b/php/images/7.3.10-cli-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-stretch/browsers/Dockerfile b/php/images/7.3.10-cli-stretch/browsers/Dockerfile new file mode 100644 index 000000000..549dcc6a1 --- /dev/null +++ b/php/images/7.3.10-cli-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.10-cli-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..fe4b04a81 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-stretch/node-browsers/Dockerfile b/php/images/7.3.10-cli-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..6b8eece8e --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-cli-stretch/node/Dockerfile b/php/images/7.3.10-cli-stretch/node/Dockerfile new file mode 100644 index 000000000..b4b7e9305 --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-fpm-buster/Dockerfile b/php/images/7.3.10-fpm-buster/Dockerfile new file mode 100644 index 000000000..7f2d49a90 --- /dev/null +++ b/php/images/7.3.10-fpm-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-fpm-buster/browsers-legacy/Dockerfile b/php/images/7.3.10-fpm-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..9f133e52e --- /dev/null +++ b/php/images/7.3.10-fpm-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-buster/browsers/Dockerfile b/php/images/7.3.10-fpm-buster/browsers/Dockerfile new file mode 100644 index 000000000..685233b8a --- /dev/null +++ b/php/images/7.3.10-fpm-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.10-fpm-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..8386d9107 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-buster/node-browsers/Dockerfile b/php/images/7.3.10-fpm-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..eb1081001 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-buster/node/Dockerfile b/php/images/7.3.10-fpm-buster/node/Dockerfile new file mode 100644 index 000000000..ed2a566b6 --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-fpm-stretch/Dockerfile b/php/images/7.3.10-fpm-stretch/Dockerfile new file mode 100644 index 000000000..eaf127c27 --- /dev/null +++ b/php/images/7.3.10-fpm-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-fpm-stretch/browsers-legacy/Dockerfile b/php/images/7.3.10-fpm-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..f01bfabbe --- /dev/null +++ b/php/images/7.3.10-fpm-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-stretch/browsers/Dockerfile b/php/images/7.3.10-fpm-stretch/browsers/Dockerfile new file mode 100644 index 000000000..f06601c31 --- /dev/null +++ b/php/images/7.3.10-fpm-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.10-fpm-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..f561ce760 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-stretch/node-browsers/Dockerfile b/php/images/7.3.10-fpm-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..3414b1ecc --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-fpm-stretch/node/Dockerfile b/php/images/7.3.10-fpm-stretch/node/Dockerfile new file mode 100644 index 000000000..a8b7d3728 --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-zts-buster/Dockerfile b/php/images/7.3.10-zts-buster/Dockerfile new file mode 100644 index 000000000..6d32722a4 --- /dev/null +++ b/php/images/7.3.10-zts-buster/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-zts-buster/browsers-legacy/Dockerfile b/php/images/7.3.10-zts-buster/browsers-legacy/Dockerfile new file mode 100644 index 000000000..c04e00f5e --- /dev/null +++ b/php/images/7.3.10-zts-buster/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-buster/browsers/Dockerfile b/php/images/7.3.10-zts-buster/browsers/Dockerfile new file mode 100644 index 000000000..7bc0a48ca --- /dev/null +++ b/php/images/7.3.10-zts-buster/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-buster/node-browsers-legacy/Dockerfile b/php/images/7.3.10-zts-buster/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..6f6c89a35 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-buster/node-browsers/Dockerfile b/php/images/7.3.10-zts-buster/node-browsers/Dockerfile new file mode 100644 index 000000000..3b9687e71 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-buster/node/Dockerfile b/php/images/7.3.10-zts-buster/node/Dockerfile new file mode 100644 index 000000000..212e417aa --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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.10-zts-stretch/Dockerfile b/php/images/7.3.10-zts-stretch/Dockerfile new file mode 100644 index 000000000..098dde2d0 --- /dev/null +++ b/php/images/7.3.10-zts-stretch/Dockerfile @@ -0,0 +1,115 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM php:7.3.10-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 +# This only works for root. The circleci user is done near the end of this Dockerfile +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 +ENV PATH /home/circleci/.local/bin:/home/circleci/bin:${PATH} + +CMD ["/bin/sh"] diff --git a/php/images/7.3.10-zts-stretch/browsers-legacy/Dockerfile b/php/images/7.3.10-zts-stretch/browsers-legacy/Dockerfile new file mode 100644 index 000000000..c3ea8ad8a --- /dev/null +++ b/php/images/7.3.10-zts-stretch/browsers-legacy/Dockerfile @@ -0,0 +1,88 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-stretch/browsers/Dockerfile b/php/images/7.3.10-zts-stretch/browsers/Dockerfile new file mode 100644 index 000000000..e6811678b --- /dev/null +++ b/php/images/7.3.10-zts-stretch/browsers/Dockerfile @@ -0,0 +1,71 @@ +### +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED +### + +FROM circleci/php:7.3.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-stretch/node-browsers-legacy/Dockerfile b/php/images/7.3.10-zts-stretch/node-browsers-legacy/Dockerfile new file mode 100644 index 000000000..10b0cab28 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-stretch/node-browsers/Dockerfile b/php/images/7.3.10-zts-stretch/node-browsers/Dockerfile new file mode 100644 index 000000000..5c539ca04 --- /dev/null +++ b/php/images/7.3.10-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.10-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 --silent --show-error --location --fail --retry 4 --retry-delay 5 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROMEDRIVER_RELEASE}) \ + && curl --silent --show-error --location --fail --retry 4 --retry-delay 5 --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.10-zts-stretch/node/Dockerfile b/php/images/7.3.10-zts-stretch/node/Dockerfile new file mode 100644 index 000000000..526162699 --- /dev/null +++ b/php/images/7.3.10-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.10-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/a9c583095d4cf08bbd68f570a1f9a99780820351/10/stretch/Dockerfile + +RUN groupadd --gid 1000 node \ + && useradd --uid 1000 --gid node --shell /bin/bash --create-home node + +ENV NODE_VERSION 10.16.3 + +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