onap-python
This Dockerfile aims to generate a baseline image for ONAP 1 projects based on SECCOM recommendations 2.
It includes:
- python 3.9
- pip3
History
9.1.0
Build the docker from scratch to remove python GPLv3 library. the 9.1.0 is then fully GPLv3 free. It is still based on Python 3.9.5 and alpine 3.13.
9.0.0
use Python 3.9.5 and alpine 3.13
8.0.0
use Python 3.9.1 and alpine 3.12
7.0.1
Evolution of 7.0.0 without the ONBUILD constraint This directive was leading to issue when some packages had to be installed to build python lib dependencies
7.0.0
version including ONBUILD directive
Due to the ONBUILD directive, each project must provide a requirements.txt file before building an image derived from this baseline image. Without this requirements.txt file, the docker built will fail. The pip install -r requirements.txt will be executed on the build of your image.
An example of Dockerfile consuming this base line image could be:
FROM nexus3.onap.org:10001/onap/integration-python
RUN echo "Add your specifc docker needs here."
Note if you need to specific package to build python library, it is possible. You need to use root user temporarily as described hereafter. ONBUILD directives will be called after the root section, allowing you to install the system packages you need to execute your pip install -rrequirements.txt.
FROM nexus3.onap.org:10001/onap/integration-python:7.0.0
USER root
# Needed for pycurl
# Install packages only needed for building
RUN apk update && \
apk add binutils jq libpng && \
apk add --no-cache --virtual .build-dependencies \
libressl-dev && \
apk del .build-dependencies
# user/group are the same as in integration/docker/onap-python base image
ENV user=onap group=onap
USER $user
Please note that you are responsible of the licenses of the packages you are adding. Only the baseline image is GPLv3 free. For example be aware that bash is GPLv3.
See SDC full example in 3.