s2i-base/Dockerfile
2017-09-21 10:33:35 -05:00

80 lines
2.2 KiB
Docker

# This image is the base image for all OpenShift v3 language Docker images.
FROM fedora:25
LABEL \
io.openshift.s2i.scripts-url=image:///usr/libexec/s2i \
io.s2i.scripts-url=image:///usr/libexec/s2i
ENV NAME=s2i-base VERSION=1 RELEASE=17 ARCH=x86_64
LABEL BZComponent="$NAME" \
Name="$FGC/$NAME" \
Version="$VERSION" \
Release="$RELEASE.$DISTTAG" \
Architecture="$ARCH"
ENV \
# DEPRECATED: Use above LABEL instead, because this will be removed in future versions.
STI_SCRIPTS_URL=image:///usr/libexec/s2i \
# Path to be used in other layers to place s2i scripts into
STI_SCRIPTS_PATH=/usr/libexec/s2i \
# The $HOME is not set by default, but some applications needs this variable
# TODO: There is a bug in rhel7.1 image where the PATH variable is not exported
# properly as Docker image metadata, which causes the $PATH variable do not
# expand properly.
HOME=/opt/app-root/src \
PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# This is the list of basic dependencies that all language Docker image can
# consume.
# Also setup the 'openshift' user that is used for the build execution and for the
# application runtime execution.
# TODO: Use better UID and GID values
RUN dnf repolist > /dev/null && \
INSTALL_PKGS="autoconf \
automake \
bsdtar \
bzip2 \
findutils \
gcc-c++ \
gd-devel \
gdb \
gettext \
git \
libcurl-devel \
libxml2-devel \
libxslt-devel \
lsof \
make \
mariadb-devel \
mariadb-libs \
openssl-devel \
patch \
postgresql-devel \
procps-ng \
redhat-rpm-config \
scl-utils \
sqlite-devel \
tar \
unzip \
wget \
which \
yum-utils \
zlib-devel" && \
mkdir -p ${HOME}/.pki/nssdb && \
chown -R 1001:0 ${HOME}/.pki && \
dnf install -y --setopt=tsflags=nodocs $INSTALL_PKGS && \
rpm -V $INSTALL_PKGS && \
dnf clean all -y && \
useradd -u 1001 -r -g 0 -d ${HOME} -s /sbin/nologin \
-c "Default Application User" default && \
chown -R 1001:0 /opt/app-root
# Copy executable utilities.
COPY bin/ /usr/bin/
# Directory with the sources is set as the working directory so all STI scripts
# can execute relative to this path.
WORKDIR ${HOME}
CMD ["base-usage"]