tobiko/Dockerfile

108 lines
2.3 KiB
Docker

ARG base_image="docker.io/library/centos:8"
FROM "${base_image}" as base
# Make sure Git and Python 3 are installed on your system.
RUN yum install -y git python3 rsync which
# Check your Python 3 version is greater than 3.6
RUN python3 -c 'import sys; sys.version_info >= (3, 6)'
# Ensure Pip is installed and up-to date
RUN curl https://bootstrap.pypa.io/get-pip.py | python3
# Check installed Pip version
RUN python3 -m pip --version
# Ensure basic Python packages are installed and up-to-date
RUN python3 -m pip install --upgrade setuptools wheel virtualenv tox six
# Check installed Tox version
RUN tox --version
# -----------------------------------------------------------------------------
FROM base as sources
# Get Tobiko source code using Git
RUN mkdir -p /src
ADD . /src/tobiko
WORKDIR /src/tobiko
# -----------------------------------------------------------------------------
FROM sources as bindeps
# Ensure required binary packages are installed
RUN ./tools/install-bindeps.sh
# Check bindeps are installed
CMD tox -e bindeps
# -----------------------------------------------------------------------------
FROM bindeps as py3
# Prepare py3 Tox virtualenv
RUN tox -e py3 --notest
# Run unit yest cases
CMD tox -e py3
# -----------------------------------------------------------------------------
FROM py3 as venv
# Run bash inside py3 Tox environment
CMD tox -e venv
# -----------------------------------------------------------------------------
FROM py3 as functional
# Run functional test cases
CMD tox -e functional
# -----------------------------------------------------------------------------
FROM py3 as scenario
# Run scenario test cases
CMD tox -e scenario
# -----------------------------------------------------------------------------
FROM py3 as neutron
# Run scenario test cases
CMD tox -e neutron
# -----------------------------------------------------------------------------
FROM py3 as faults
# Run faults test cases
CMD tox -e faults
# -----------------------------------------------------------------------------
from bindeps as infrared
# Set Python 3 as default alternative for python command
RUN alternatives --set python /usr/bin/python3
# Prepare infrared Tox virtualenv
RUN tox -e infrared --notest
# Run Tobiko InfraRed plugin
CMD tox -e infrared