Docker image refinement and preparation for future development.

.dockerignore file was added to limit size of the docker context
The more complex docker images will be placed in newly created
dockerfiles dir. Each in its own subdir
and accompanied with README.rst file describing their use.

Right now there is only one, the same as the one in repo root.
But in the future there will be more.

Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
Change-Id: I5ed91d4258d9ad6725a86d5c3c6a40a02212b5d4
This commit is contained in:
Jiri Podivin 2021-02-12 11:31:09 +01:00
parent 4fabb3d2b5
commit 4405071de0
5 changed files with 122 additions and 5 deletions

67
.dockerignore Normal file
View File

@ -0,0 +1,67 @@
# Docker image doesn't need any files that git doesn't track.
#Therefore the .dockerignore largely follows the structure of .gitignore.
# C extensions
*.so
# Packages
*.egg*
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
lib
lib64
# Installer logs
pip-log.txt
# Unit test / coverage reports
cover/
.coverage*
!.coveragerc
.tox
nosetests.xml
.testrepository
.venv
.stestr/*
# Translations
*.mo
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# Complexity
output/*.html
output/*/index.html
# Sphinx
doc/build
doc/source/reference/api/
# pbr generates these
AUTHORS
ChangeLog
# Editors
*~
.*.swp
.*sw?
# Files created by releasenotes build
releasenotes/build
# Ansible specific
hosts
*.retry
#Vagrantfiles, since we are using docker
Vagrantfile.*

View File

@ -1,12 +1,14 @@
FROM centos:latest FROM centos:latest
LABEL name="VF develoment dockerfile" LABEL name="VF develoment dockerfile"
LABEL version="0.2" LABEL version="0.3"
LABEL description="Provides environment for development of new validations." LABEL description="Provides environment for development of new validations."
RUN dnf install -y git python3-pip gcc python3-devel jq RUN dnf install -y git python3-pip gcc python3-devel jq
#We copy contents of the local validations-libs repo with all of our changes
COPY . /root/validations-libs COPY . /root/validations-libs
#validations-common repo is cloned
RUN git clone https://opendev.org/openstack/validations-common /root/validations-common RUN git clone https://opendev.org/openstack/validations-common /root/validations-common
RUN python3 -m pip install cryptography==3.3 RUN python3 -m pip install cryptography==3.3
@ -19,7 +21,11 @@ RUN cd /root/validations-common && \
python3 -m pip install . && \ python3 -m pip install . && \
python3 -m pip install -r test-requirements.txt python3 -m pip install -r test-requirements.txt
RUN ln -s /usr/local/share/ansible /usr/share/ansible #Setting up the default directory structure for both ansible,
RUN mkdir /etc/ansible && \ #and the VF
RUN ln -s /usr/local/share/ansible /usr/share/ansible && \
mkdir -p /var/log/validations
#Simplified ansible inventory is created, containing only localhost,
#and defining the connection as local.
RUN mkdir -p /etc/ansible && \
echo "localhost ansible_connection=local" > /etc/ansible/hosts echo "localhost ansible_connection=local" > /etc/ansible/hosts
RUN mkdir -p /var/log/validations

View File

@ -19,11 +19,17 @@ Docker Quickstart
================= =================
A Dockerfile is provided at the root of the Validations Library project in A Dockerfile is provided at the root of the Validations Library project in
order to quickly set and hack the Validation Framework. order to quickly set and hack the Validation Framework, on a equivalent of a single machine.
Build the container from the Dockerfile by running:: Build the container from the Dockerfile by running::
docker build -t "vf:dockerfile" . docker build -t "vf:dockerfile" .
From the validations-libs repo directory.
.. note::
More complex images are available in the dockerfiles directory
and require explicit specification of both build context and the Dockerfile.
Then you can run the container and start to run some builtin Validations:: Then you can run the container and start to run some builtin Validations::
docker run -ti vf:dockerfile /bin/bash docker run -ti vf:dockerfile /bin/bash

View File

@ -0,0 +1,31 @@
FROM centos:latest
LABEL name="VF develoment dockerfile"
LABEL version="0.3"
LABEL description="Provides environment for development of new validations."
RUN dnf install -y git python3-pip gcc python3-devel jq
#We copy contents of the local validations-libs repo with all of our changes
COPY . /root/validations-libs
#validations-common repo is cloned
RUN git clone https://opendev.org/openstack/validations-common /root/validations-common
RUN python3 -m pip install cryptography==3.3
RUN cd /root/validations-libs && \
python3 -m pip install . && \
python3 -m pip install -r test-requirements.txt
RUN cd /root/validations-common && \
python3 -m pip install . && \
python3 -m pip install -r test-requirements.txt
#Setting up the default directory structure for both ansible,
#and the VF
RUN ln -s /usr/local/share/ansible /usr/share/ansible && \
mkdir -p /var/log/validations
#Simplified ansible inventory is created, containing only localhost,
#and defining the connection as local.
RUN mkdir -p /etc/ansible && \
echo "localhost ansible_connection=local" > /etc/ansible/hosts

View File

@ -0,0 +1,7 @@
Localhost validations dockerfile
================================
Default dockerfile for development of new validations.
Creates a container suitable for running validations requiring only a local machine.
More complex setup, such as Openstack deployment, requires further adjustment.