|
| 1 | +### |
| 2 | +### DO NOT MODIFY THIS FILE. THIS FILE HAS BEEN AUTOGENERATED |
| 3 | +### |
| 4 | + |
| 5 | +FROM registry.semaphoreci.com/golang:1.23.10-bookworm |
| 6 | + |
| 7 | +# Install Java |
| 8 | +RUN set -ex && sudo apt-get update && sudo apt-get install -y apt-utils && sudo apt-get dist-upgrade -f -y && sudo apt-get install -y bzip2 libgconf-2-4 |
| 9 | + |
| 10 | +RUN if grep -q bookworm /etc/apt/sources.list.d/*; then sudo apt-get install -f -y openjdk-17-jre openjdk-17-jdk; else sudo apt-get install -y -f default-jre default-jdk; fi |
| 11 | + |
| 12 | +# Create Semaphore user |
| 13 | +RUN groupadd --gid 8592 semaphore |
| 14 | +RUN useradd --uid 8592 --gid semaphore --shell /bin/bash --create-home semaphore |
| 15 | +RUN echo 'semaphore ALL=NOPASSWD: ALL' >> /etc/sudoers.d/99-semaphore |
| 16 | +RUN echo 'Defaults env_keep += "DEBIAN_FRONTEND"' >> /etc/sudoers.d/env_keep |
| 17 | + |
| 18 | +# Set User |
| 19 | +USER semaphore |
| 20 | + |
| 21 | +# Install firefox |
| 22 | +RUN FIREFOX_URL="https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US" \ |
| 23 | + && ACTUAL_URL=$(curl -Ls -o /dev/null -w %{url_effective} $FIREFOX_URL) \ |
| 24 | + && curl --silent --show-error --location --fail --retry 3 --output /tmp/firefox.tar.bz2 $ACTUAL_URL \ |
| 25 | + && sudo tar -xvf /tmp/firefox.tar.bz2 -C /opt \ |
| 26 | + && sudo ln -s /opt/firefox/firefox /usr/local/bin/firefox \ |
| 27 | + && sudo apt-get install -y libgtk3.0-cil-dev libasound2 libasound2 libdbus-glib-1-2 libdbus-1-3 \ |
| 28 | + && rm -rf /tmp/firefox.* \ |
| 29 | + && firefox --version |
| 30 | + |
| 31 | +# Install Chrome and ChromeDriver |
| 32 | +RUN CHROME_VERSION="$(curl https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_STABLE)" \ |
| 33 | + && curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}-1_amd64.deb \ |
| 34 | + && curl --silent --show-error --location --fail --retry 3 --output /tmp/chromedriver_linux64.zip "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROME_VERSION}/linux64/chromedriver-linux64.zip" \ |
| 35 | + && (sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb || sudo apt-get -fy install) \ |
| 36 | + && rm -rf /tmp/google-chrome-stable_current_amd64.deb \ |
| 37 | + && sudo sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' /opt/google/chrome/google-chrome \ |
| 38 | + && google-chrome --version \ |
| 39 | + && cd /tmp \ |
| 40 | + && unzip chromedriver_linux64.zip \ |
| 41 | + && rm -rf chromedriver_linux64.zip \ |
| 42 | + && sudo mv chromedriver-linux64/chromedriver /usr/local/bin/chromedriver \ |
| 43 | + && sudo chmod +x /usr/local/bin/chromedriver \ |
| 44 | + && chromedriver --version |
| 45 | + |
| 46 | +# start xvfb automatically |
| 47 | +ENV DISPLAY :99 |
| 48 | +RUN printf '#!/bin/sh\nXvfb :99 -screen 0 1280x1024x24 &\nexec "$@"\n' > /tmp/entrypoint |
| 49 | +RUN chmod +x /tmp/entrypoint |
| 50 | +RUN sudo mv /tmp/entrypoint /docker-entrypoint.sh |
| 51 | +ENTRYPOINT ["/docker-entrypoint.sh"] |
| 52 | +CMD ["/bin/sh"] |
0 commit comments