This is the Git repo for the official pyATS test framework Docker image. This repository contains Dockerfiles and scripts used to build the actual image, available as ciscotestautomation/pyats
tag on Dockerhub.
- Website: https://developer.cisco.com/site/pyats/
- Documentation: https://developer.cisco.com/site/pyats/docs/
- Dockerhub: https://hub.docker.com/r/ciscotestautomation/pyats/
Downloading the pyATS image in a separate step is not strictly necessary, but is a good practise to ensure your local image is always kept up-to-date.
$ docker pull ciscotestautomation/pyats:latest
where the latest
tag can be replace with the specific version of pyATS you need.
The pyATS docker container defaults to starting in Python interactive shell.
$ docker run -it ciscotestautomation/pyats:latest [Entrypoint] Starting pyATS Docker Image ... [Entrypoint] Workspace Directory: /pyats [Entrypoint] Activating workspace Python 3.4.7 (default, Nov 4 2017, 22:21:42) [GCC 4.9.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Alternatively, you can also start the container in shell,
$ docker run -it ciscotestautomation/pyats:latest /bin/bash [Entrypoint] Starting pyATS Docker Image ... [Entrypoint] Workspace Directory: /pyats [Entrypoint] Activating workspace root@0c832ac21322:/pyats#
The pyATS virtual environment is sourced automatically, and your workspace is preset to be /pyats
. Note that this workspace directory (virtual environment) is declared to be a docker volume, so its content will persist between container reloads.
To get out of the container, try CTRL-D
.
Examples and templates are built into the image under /pyats
default workspace to help users on getting started.
$ docker run -it ciscotestautomation/pyats:latest /bin/bash [Entrypoint] Starting pyATS Docker Image ... [Entrypoint] Workspace Directory: /pyats [Entrypoint] Activating workspace root@0c832ac21322:/pyats# easypy examples/basic/job/basic_example_job.py
You can use the following built-in mechanisms to customize your container before startup, and have your environment setup automatically.
To populate your newly started containers with pip packages, you can customize your container by mounting a pip requirements file to /pyats/requirements.txt
. When a container is first created, this required package file is automatically provided to pip
to fulfill.
$ docker run -it -v /your/requirements.txt:/pyats/requirements.txt ciscotestautomation/pyats:latest [Entrypoint] Starting pyATS Docker Image ... [Entrypoint] Workspace Directory: /pyats [Entrypoint] Activating workspace [Entrypoint] Installing pip packages: /pyats/requirements.txt Collecting requests==2.12.3 (from -r /pyats/requirements.txt (line 1)) ...
For any other customization you need to do to your container workspace, such as pulling git repositories and setting up source code in development mode, you can mount a custom bash script to /pyats/workspace.init
. This file is automatically executed as part of container initial creation.
$ docker run -it -v /your/workspace.init:/pyats/workspace.init ciscotestautomation/pyats:latest [Entrypoint] Starting pyATS Docker Image ... [Entrypoint] Workspace Directory: /pyats [Entrypoint] Activating workspace [Entrypoint] Running workspace init: /pyats/workspace.init custom initialization ...
For a more elaborate example of the workspace.init
file, see templates/
folder under this repository.