Robot Framework in a Official Python 3 and Debian Buster based (slim) Docker container.
- To run tests in an environment that is well isolated from the host
- To get started fast when prototyping/developing own Robot Framework libraries
- To be able to take Robot Framework into use where
sudo
is not available
Download rfdocker
and Dockerfile
to where your atest/
are:
curl https://raw.githubusercontent.com/asyrjasalo/rfdocker/master/rfdocker -o rfdocker || \
wget https://raw.githubusercontent.com/asyrjasalo/rfdocker/master/rfdocker -O rfdocker && \
chmod +x rfdocker && \
curl https://raw.githubusercontent.com/asyrjasalo/rfdocker/master/Dockerfile -o Dockerfile || \
wget https://raw.githubusercontent.com/asyrjasalo/rfdocker/master/Dockerfile -O Dockerfile && \
echo "Done."
Then:
./rfdocker
The Robot Framework output files are put in the same directory under results/
.
Any arguments are forwarded to robot
inside the container, e.g. the output directory can be renamed with:
./rfdocker --outputdir results/$(date +%Y-%m-%dT%H:%M:%S) atest/
Put the external libraries to requirements.txt
and uncomment the lines in Dockerfile
. The packages are automatically installed inside the container whenever rfdocker
is ran.
You can pass variable BUILD_ARGS
to rfdocker
to customize docker build
arguments, and variable BUILD_DIR
to override the path of the directory where Dockerfile
and requirements.txt
are.
Similarly, you can pass variable RUN_ARGS
to rfdocker
to e.g. define additional docker run
arguments, e.g. to change the default volume mappings
or networking.
The rfdocker images are hosted in Docker Hub, robotframework/rfdocker. The version numbers correspond to the Robot Framework releases.
Since Robot Framework version 3.0.4, Python 2 image is unmaintained.
The images are built with docker/Dockerfile.slimbuster
. The image is smoke tested using rfdocker
in the repo itself.
Robot Framework version is read from file docker/rf_version
, and Python version from file docker/python_version
.
To build a new base image:
docker/build_and_test_image
To push the image to your private Docker registry (which you should always do):
REGISTRY_URL=https://your.private.registry/username \
docker/tag_and_push_image
For pushing to public Docker Hub, you may want to use:
REGISTRY_URL=username \
docker/tag_and_push_image
Remember to docker login
for the script to push to a Docker registry.
Run shellcheck for changes in scripts:
shellcheck rfdocker docker/build_and_test_image docker/tag_and_push_image
I could appreciate some help to have something similar working on Windows.