From 9e3def528baf428808beb3f3ab82a0e207900087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Mich=C3=A9le?= Date: Tue, 30 Apr 2019 17:50:40 +0200 Subject: [PATCH 1/2] don't detect chromedriver version if provided as arg (#901) This fixes cases where there was no chromedriver available for chrome unstable releases, resulting in failed image builds, even if an existing chromedriver version was provided by the user. --- NodeChrome/Dockerfile | 24 +++++++++--------------- NodeChrome/Dockerfile.txt | 24 +++++++++--------------- 2 files changed, 18 insertions(+), 30 deletions(-) diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index 151ace3958..e2acfc4ae9 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -41,24 +41,18 @@ USER seluser # Latest released version will be used by default #============================================ ARG CHROME_DRIVER_VERSION -RUN CHROME_STRING=$(google-chrome --version) \ - && CHROME_VERSION_STRING=$(echo "${CHROME_STRING}" | grep -oP "\d+\.\d+\.\d+\.\d+") \ - && CHROME_MAYOR_VERSION=$(echo "${CHROME_VERSION_STRING%%.*}") \ - && wget --no-verbose -O /tmp/LATEST_RELEASE "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAYOR_VERSION}" \ - && CD_VERSION=$(cat "/tmp/LATEST_RELEASE") \ - && rm /tmp/LATEST_RELEASE \ - && if [ -z "$CHROME_DRIVER_VERSION" ]; \ - then CHROME_DRIVER_VERSION="${CD_VERSION}"; \ - fi \ - && CD_VERSION=$(echo $CHROME_DRIVER_VERSION) \ - && echo "Using chromedriver version: "$CD_VERSION \ - && wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CD_VERSION/chromedriver_linux64.zip \ +RUN if [ -z "$CHROME_DRIVER_VERSION" ]; \ + then CHROME_MAJOR_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+)(\.[0-9]+){3}.*/\1/") \ + && CHROME_DRIVER_VERSION=$(wget --no-verbose -O - "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAJOR_VERSION}"); \ + fi \ + && echo "Using chromedriver version: "$CHROME_DRIVER_VERSION \ + && wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip \ && rm -rf /opt/selenium/chromedriver \ && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ && rm /tmp/chromedriver_linux64.zip \ - && mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CD_VERSION \ - && chmod 755 /opt/selenium/chromedriver-$CD_VERSION \ - && sudo ln -fs /opt/selenium/chromedriver-$CD_VERSION /usr/bin/chromedriver + && mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver COPY generate_config /opt/bin/generate_config diff --git a/NodeChrome/Dockerfile.txt b/NodeChrome/Dockerfile.txt index 6e62a4b529..5bea94806d 100644 --- a/NodeChrome/Dockerfile.txt +++ b/NodeChrome/Dockerfile.txt @@ -34,24 +34,18 @@ USER seluser # Latest released version will be used by default #============================================ ARG CHROME_DRIVER_VERSION -RUN CHROME_STRING=$(google-chrome --version) \ - && CHROME_VERSION_STRING=$(echo "${CHROME_STRING}" | grep -oP "\d+\.\d+\.\d+\.\d+") \ - && CHROME_MAYOR_VERSION=$(echo "${CHROME_VERSION_STRING%%.*}") \ - && wget --no-verbose -O /tmp/LATEST_RELEASE "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAYOR_VERSION}" \ - && CD_VERSION=$(cat "/tmp/LATEST_RELEASE") \ - && rm /tmp/LATEST_RELEASE \ - && if [ -z "$CHROME_DRIVER_VERSION" ]; \ - then CHROME_DRIVER_VERSION="${CD_VERSION}"; \ - fi \ - && CD_VERSION=$(echo $CHROME_DRIVER_VERSION) \ - && echo "Using chromedriver version: "$CD_VERSION \ - && wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CD_VERSION/chromedriver_linux64.zip \ +RUN if [ -z "$CHROME_DRIVER_VERSION" ]; \ + then CHROME_MAJOR_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+)(\.[0-9]+){3}.*/\1/") \ + && CHROME_DRIVER_VERSION=$(wget --no-verbose -O - "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAJOR_VERSION}"); \ + fi \ + && echo "Using chromedriver version: "$CHROME_DRIVER_VERSION \ + && wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip \ && rm -rf /opt/selenium/chromedriver \ && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ && rm /tmp/chromedriver_linux64.zip \ - && mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CD_VERSION \ - && chmod 755 /opt/selenium/chromedriver-$CD_VERSION \ - && sudo ln -fs /opt/selenium/chromedriver-$CD_VERSION /usr/bin/chromedriver + && mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ + && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver COPY generate_config /opt/bin/generate_config From 9bdd1b41fef0cf7ed9bac62ba3ce67ed3a42a884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Mich=C3=A9le?= Date: Tue, 30 Apr 2019 18:45:00 +0200 Subject: [PATCH 2/2] revert changes to Dockerfile --- NodeChrome/Dockerfile | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/NodeChrome/Dockerfile b/NodeChrome/Dockerfile index e2acfc4ae9..151ace3958 100644 --- a/NodeChrome/Dockerfile +++ b/NodeChrome/Dockerfile @@ -41,18 +41,24 @@ USER seluser # Latest released version will be used by default #============================================ ARG CHROME_DRIVER_VERSION -RUN if [ -z "$CHROME_DRIVER_VERSION" ]; \ - then CHROME_MAJOR_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+)(\.[0-9]+){3}.*/\1/") \ - && CHROME_DRIVER_VERSION=$(wget --no-verbose -O - "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAJOR_VERSION}"); \ - fi \ - && echo "Using chromedriver version: "$CHROME_DRIVER_VERSION \ - && wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip \ +RUN CHROME_STRING=$(google-chrome --version) \ + && CHROME_VERSION_STRING=$(echo "${CHROME_STRING}" | grep -oP "\d+\.\d+\.\d+\.\d+") \ + && CHROME_MAYOR_VERSION=$(echo "${CHROME_VERSION_STRING%%.*}") \ + && wget --no-verbose -O /tmp/LATEST_RELEASE "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_MAYOR_VERSION}" \ + && CD_VERSION=$(cat "/tmp/LATEST_RELEASE") \ + && rm /tmp/LATEST_RELEASE \ + && if [ -z "$CHROME_DRIVER_VERSION" ]; \ + then CHROME_DRIVER_VERSION="${CD_VERSION}"; \ + fi \ + && CD_VERSION=$(echo $CHROME_DRIVER_VERSION) \ + && echo "Using chromedriver version: "$CD_VERSION \ + && wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CD_VERSION/chromedriver_linux64.zip \ && rm -rf /opt/selenium/chromedriver \ && unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \ && rm /tmp/chromedriver_linux64.zip \ - && mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \ - && sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver + && mv /opt/selenium/chromedriver /opt/selenium/chromedriver-$CD_VERSION \ + && chmod 755 /opt/selenium/chromedriver-$CD_VERSION \ + && sudo ln -fs /opt/selenium/chromedriver-$CD_VERSION /usr/bin/chromedriver COPY generate_config /opt/bin/generate_config