Skip to content

Commit

Permalink
Add a Dockerfile that provides an env to hack on Selenium
Browse files Browse the repository at this point in the history
Selenium has a pile of dependencies that may not be obvious to
the average developer. Setting up a dev env can be a major
stumbling block. To work around this, this PR adds a Dockerfile
that sets up a basic linux image.

This image contains:

* Bazel
* The base tooling for Java, .Net, Python, and Ruby
* A copy of the source already checked out
* A `.bazelrc.local` that makes tests run headless using
  pinned browsers
  • Loading branch information
shs96c committed Aug 16, 2021
1 parent 4f95eff commit 57b5345
Showing 1 changed file with 40 additions and 0 deletions.
40 changes: 40 additions & 0 deletions scripts/dev-image/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Used to create a development image for working on Selenium

FROM ubuntu/focal@sha256:1e48201ccc2ab83afc435394b3bf70af0fa0055215c1e26a5da9b50a1ae367c9

RUN apt-get update -qqy && apt-get install -y wget curl gnupg2

# So we can install browsers later
RUN wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && dpkg -i packages-microsoft-prod.deb && rm packages-microsoft-prod.deb
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list

ENV DEBIAN_FRONTEND=noninteractive

# Things needed by bazel

RUN apt-get update -qqy && \
apt-get -qy install build-essential \
git-all \
ca-certificates \
openjdk-11-jdk \
python3.9 python3-pip python-is-python3 \
ruby-full \
dotnet-sdk-5.0 && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*

# Browsers

RUN apt-get update -qqy && \
apt-get -qy install google-chrome-stable firefox && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*

RUN curl -L https://github.com/bazelbuild/bazelisk/releases/download/v1.10.1/bazelisk-linux-amd64 -o /usr/bin/bazelisk && \
chmod 755 /usr/bin/bazelisk && \
ln -sf /usr/bin/bazelisk /usr/bin/bazel

RUN useradd -ms /bin/bash dev
USER dev
WORKDIR /home/dev
RUN git clone --depth 1 https://github.com/SeleniumHQ/selenium.git /home/dev/selenium
RUN echo "build --//common:pin_browsers" >>/home/dev/selenium/.bazelrc.local
RUN echo "build --//common:headless" >>/home/dev/selenium/.bazelrc.local

0 comments on commit 57b5345

Please sign in to comment.