\n\nUpstreamCommitID: 20802d8c3c58c018b1eb37f8e2abcb09f9548d0e\nUpstreamCommitLink: 20802d8c3c\nUpstreamRepository: https://github.com/sclorg/s2i-python-container
73 lines
2.8 KiB
Docker
73 lines
2.8 KiB
Docker
# This image provides a Python 3.7 environment you can use to run your Python
|
|
# applications.
|
|
FROM registry.fedoraproject.org/f31/s2i-base:latest
|
|
|
|
EXPOSE 8080
|
|
|
|
ENV PYTHON_VERSION=3.7 \
|
|
PATH=$HOME/.local/bin/:$PATH \
|
|
PYTHONUNBUFFERED=1 \
|
|
PYTHONIOENCODING=UTF-8 \
|
|
LC_ALL=en_US.UTF-8 \
|
|
LANG=en_US.UTF-8 \
|
|
PIP_NO_CACHE_DIR=off
|
|
|
|
|
|
ENV NAME=python3 \
|
|
VERSION=0 \
|
|
ARCH=x86_64
|
|
|
|
ENV SUMMARY="Platform for building and running Python $PYTHON_VERSION applications" \
|
|
DESCRIPTION="Python $PYTHON_VERSION available as container is a base platform for \
|
|
building and running various Python $PYTHON_VERSION applications and frameworks. \
|
|
Python is an easy to learn, powerful programming language. It has efficient high-level \
|
|
data structures and a simple but effective approach to object-oriented programming. \
|
|
Python's elegant syntax and dynamic typing, together with its interpreted nature, \
|
|
make it an ideal language for scripting and rapid application development in many areas \
|
|
on most platforms."
|
|
|
|
LABEL summary="$SUMMARY" \
|
|
description="$DESCRIPTION" \
|
|
io.k8s.description="$DESCRIPTION" \
|
|
io.k8s.display-name="Python 3.7" \
|
|
io.openshift.expose-services="8080:http" \
|
|
io.openshift.tags="builder,python,python37,python-37,rh-python37" \
|
|
com.redhat.component="$NAME" \
|
|
name="$FGC/$NAME" \
|
|
version="$VERSION" \
|
|
usage="s2i build https://github.com/sclorg/s2i-python-container.git --context-dir=3.7/test/setup-test-app/ $FGC/$NAME python-sample-app" \
|
|
maintainer="SoftwareCollections.org <sclorg@redhat.com>"
|
|
|
|
RUN INSTALL_PKGS="python3 python3-devel python3-setuptools python3-pip nss_wrapper \
|
|
httpd httpd-devel atlas-devel gcc-gfortran libffi-devel \
|
|
libtool-ltdl enchant redhat-rpm-config" && \
|
|
dnf -y --setopt=tsflags=nodocs install $INSTALL_PKGS && \
|
|
rpm -V $INSTALL_PKGS && \
|
|
dnf -y clean all --enablerepo='*'
|
|
|
|
# Copy the S2I scripts from the specific language image to $STI_SCRIPTS_PATH.
|
|
COPY ./s2i/bin/ $STI_SCRIPTS_PATH
|
|
|
|
# Copy extra files to the image.
|
|
COPY ./root/ /
|
|
|
|
# - Create a Python virtual environment for use by any application to avoid
|
|
# potential conflicts with Python packages preinstalled in the main Python
|
|
# installation.
|
|
# - In order to drop the root user, we have to make some directories world
|
|
# writable as OpenShift default security model is to run the container
|
|
# under random UID.
|
|
RUN python3.7 -m venv ${APP_ROOT} && \
|
|
chown -R 1001:0 ${APP_ROOT} && \
|
|
fix-permissions ${APP_ROOT} -P
|
|
|
|
# For Fedora scl_enable isn't sourced automatically in s2i-core
|
|
# so virtualenv needs to be activated this way
|
|
ENV BASH_ENV="${APP_ROOT}/bin/activate" \
|
|
ENV="${APP_ROOT}/bin/activate" \
|
|
PROMPT_COMMAND=". ${APP_ROOT}/bin/activate"
|
|
|
|
USER 1001
|
|
|
|
# Set the default CMD to print the usage of the language image.
|
|
CMD $STI_SCRIPTS_PATH/usage
|