UNCLASSIFIED - NO CUI

Skip to content
Snippets Groups Projects
Dockerfile 2.92 KiB
Newer Older
Scott Stroud's avatar
Scott Stroud committed
ARG CP_BASE_NEW_IMAGE=confluentinc/cp-base-new
Scott Stroud's avatar
Scott Stroud committed
ARG CP_BASE_NEW_TAG=7.8.2-1-ubi8
Scott Stroud's avatar
Scott Stroud committed

Abdullah Alsindy's avatar
Abdullah Alsindy committed
ARG BASE_REGISTRY=registry1.dso.mil
Scott Stroud's avatar
Scott Stroud committed
ARG BASE_IMAGE=redhat/openjdk/openjdk17
ARG BASE_TAG=1.17
Abdullah Alsindy's avatar
Abdullah Alsindy committed

Scott Stroud's avatar
Scott Stroud committed
FROM ${CP_BASE_NEW_IMAGE}:${CP_BASE_NEW_TAG} AS base
Abdullah Alsindy's avatar
Abdullah Alsindy committed
FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG}

Scott Stroud's avatar
Scott Stroud committed
# This affects how strings in Java class files are interpreted.  
# We want UTF-8 and this is the only locale in the base image that supports it
ENV LANG="C.UTF-8"

Scott Stroud's avatar
Scott Stroud committed
# openjdk11 (base image) does not expose all the fips ciphers, like HmacSHA256, when fips enabled
# This causes issues with keytool & connect, so disable it for ONLY those java processes (not other processes, the OS, or K8S host)
ARG JAVA_OPTS="-Dsecurity.useSystemPropertiesFile=false -Dcom.redhat.fips=false"
ENV JDK_JAVA_OPTIONS=$JAVA_OPTS
ENV JAVA_TOOL_OPTIONS=$JAVA_OPTS

Scott Stroud's avatar
Scott Stroud committed
# Set the classpath for JARs required by `cub`
Scott Stroud's avatar
Scott Stroud committed
ENV CUB_CLASSPATH='"/usr/share/java/cp-base-new/*"'

USER root

COPY archive.key /tmp

## For auditing & debugging
COPY LICENSE /licenses/cp-base-new_LICENSE
COPY Dockerfile /etc/confluent/ironbank/cp-base-new_Dockerfile
COPY hardening_manifest.yaml /etc/confluent/ironbank/cp-base-new_Dockerfile
COPY --chmod=755 scripts/dnfupdate /usr/bin/
COPY --chmod=755 scripts/replacejar /usr/bin/

## copy from dockerhub image
COPY --from=base /etc/confluent /etc/confluent
COPY --from=base /etc/cp-base-new /etc/cp-base-new
COPY --from=base /licenses /licenses
COPY --from=base /usr/share/java/cp-base-new /usr/share/java/cp-base-new 
COPY --from=base /usr/share/doc /usr/share/doc
COPY --from=base /usr/local/lib /usr/local/lib
COPY --from=base /usr/local/lib64 /usr/local/lib64
Scott Stroud's avatar
Scott Stroud committed
COPY --from=base /usr/local/bin /usr/local/bin
Scott Stroud's avatar
Scott Stroud committed

RUN echo "===> dnf installs" \
        && dnf install -y --nodocs python39 openssl tar procps iputils hostname \
        && dnf install -y --nodocs glibc glibc-common glibc-minimal-langpack \
        && dnf install -y --nodocs tzdata libgcc libstdc++ cyrus-sasl-lib libsolv \
        && rpm --import /tmp/archive.key \
    && echo "===> python aliasing" \
        && ln -s /usr/bin/python3.9 /usr/bin/python \
        && ln -s /usr/bin/pip3 /usr/bin/pip \
        && alias python=python3.9 \
        && alias pip=pip3 \
        && alternatives --set python /usr/bin/python3.9 \
    && echo "===> manual hardening" \
        && python3 -m pip install --upgrade setuptools \
        && pip3 install urllib3 --upgrade \
        && dnf erase -y procps-ng gdb-gdbserver \
Scott Stroud's avatar
Scott Stroud committed
        && rm -Rf /usr/local/bin/openssl \
Scott Stroud's avatar
Scott Stroud committed
    && echo "===> appuser setup" \
        && mkdir -p /usr/logs /licenses \
        && useradd --no-log-init --create-home --shell /bin/bash appuser \
        && chown appuser:appuser -R /usr/logs \
Scott Stroud's avatar
Scott Stroud committed
    && dnfupdate 
    
# Disable setuid/setgid bits
RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true
RUN find / -perm /6000 -type f -exec chmod g-s {} \; || true
Scott Stroud's avatar
Scott Stroud committed

USER appuser
Scott Stroud's avatar
Scott Stroud committed
WORKDIR /home/appuser
Abdullah Alsindy's avatar
Abdullah Alsindy committed

Scott Stroud's avatar
Scott Stroud committed
## healthcheck not applicable since this is ONLY used as a base image
Scott Stroud's avatar
Scott Stroud committed
HEALTHCHECK NONE