Skip to content

Commit 57b5345

Browse files
committed
Add a Dockerfile that provides an env to hack on Selenium
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
1 parent 4f95eff commit 57b5345

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

scripts/dev-image/Dockerfile

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Used to create a development image for working on Selenium
2+
3+
FROM ubuntu/focal@sha256:1e48201ccc2ab83afc435394b3bf70af0fa0055215c1e26a5da9b50a1ae367c9
4+
5+
RUN apt-get update -qqy && apt-get install -y wget curl gnupg2
6+
7+
# So we can install browsers later
8+
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
9+
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
10+
11+
ENV DEBIAN_FRONTEND=noninteractive
12+
13+
# Things needed by bazel
14+
15+
RUN apt-get update -qqy && \
16+
apt-get -qy install build-essential \
17+
git-all \
18+
ca-certificates \
19+
openjdk-11-jdk \
20+
python3.9 python3-pip python-is-python3 \
21+
ruby-full \
22+
dotnet-sdk-5.0 && \
23+
rm -rf /var/lib/apt/lists/* /var/cache/apt/*
24+
25+
# Browsers
26+
27+
RUN apt-get update -qqy && \
28+
apt-get -qy install google-chrome-stable firefox && \
29+
rm -rf /var/lib/apt/lists/* /var/cache/apt/*
30+
31+
RUN curl -L https://github.com/bazelbuild/bazelisk/releases/download/v1.10.1/bazelisk-linux-amd64 -o /usr/bin/bazelisk && \
32+
chmod 755 /usr/bin/bazelisk && \
33+
ln -sf /usr/bin/bazelisk /usr/bin/bazel
34+
35+
RUN useradd -ms /bin/bash dev
36+
USER dev
37+
WORKDIR /home/dev
38+
RUN git clone --depth 1 https://github.com/SeleniumHQ/selenium.git /home/dev/selenium
39+
RUN echo "build --//common:pin_browsers" >>/home/dev/selenium/.bazelrc.local
40+
RUN echo "build --//common:headless" >>/home/dev/selenium/.bazelrc.local

0 commit comments

Comments
 (0)