Docker image for Java automated UI tests.
Includes:
- JDK 11/17/21
- Maven 3.9.9
- Chrome 131.0.6778.85
- ChromeDriver 131.0.6778.85
Available on Docker Hub.
The following Docker tags are available:
jdk-11
(jdk-11/Dockerfile)jdk-17
(jdk-17/Dockerfile)jdk-21
,latest
(jdk-21/Dockerfile)
See the demo Maven project to see how this Docker image can be used to run UI tests. To run the demo within the latest version of this image on Docker Hub:
cd demo
./run.sh
To build and test the Docker images locally, install Bats and run:
./build.sh
To upgrade the Docker images to use the latest version of Chrome, install dctrl-tools and run:
./upgrade.sh chrome
To upgrade the Docker images to use the latest version of ChromeDriver:
./upgrade.sh chromedriver
Note that both of these scripts will also commit to Git.
Configure Selenium to launch Chrome in headless mode:
ChromeOptions options = new ChromeOptions().addArguments("--headless=new");
WebDriver driver = new ChromeDriver(options);
To configure Protractor to use the version of ChromeDriver bundled in this image, set chromeDriver
in Protractor's conf.js
file:
exports.config = {
chromeDriver: '/usr/bin/chromedriver'
}
Chrome uses /dev/shm
for runtime data which is 64MB by default under Docker. If this is not sufficient then this can cause Chrome to crash. Possible workarounds:
- Increase the size of
/dev/shm
- Mount
/dev/shm
to the host's - Start Chrome with the flag
--disable-dev-shm-usage