FROM rhel7:7.6
|
|
MAINTAINER Red Hat Training
|
|
ARG NEXUS_VERSION=2.14.3-02
|
ARG NEXUS_DOWNLOAD_URL=http://content.example.com/ocp3.6/x86_64/installers/nexus-${NEXUS_VERSION}-bundle.tar.gz
|
|
ENV SONATYPE_WORK=/sonatype-work \
|
USER_NAME=nexus \
|
USER_UID=200
|
|
|
ADD usr/local/bin/fix-permissions.sh /usr/local/bin/fix-permissions.sh
|
ADD probes/liveness.sh /usr/local/bin/liveness.sh
|
ADD probes/readiness.sh /usr/local/bin/readiness.sh
|
ADD uid_entrypoint /
|
|
#install tools and Java
|
RUN rpm --rebuilddb && \
|
yum install -y \
|
curl tar createrepo java-1.8.0-openjdk-devel \
|
&& yum clean all \
|
#install nexus
|
&& mkdir -p /opt/sonatype/nexus \
|
&& mkdir ${SONATYPE_WORK} \
|
&& curl --fail --silent --location --retry 3 \
|
${NEXUS_DOWNLOAD_URL} \
|
| gunzip \
|
| tar x -C /tmp nexus-${NEXUS_VERSION} \
|
&& mv /tmp/nexus-${NEXUS_VERSION}/* /opt/sonatype/nexus/ \
|
&& rm -rf /tmp/nexus-${NEXUS_VERSION} \
|
#create a user for nexus
|
&& useradd -r -u 200 -m -c "nexus role account" -s /bin/false nexus \
|
#fix permissions
|
&& chmod 755 /usr/local/bin/fix-permissions.sh \
|
&& chmod 755 /usr/local/bin/liveness.sh \
|
&& chmod 755 /usr/local/bin/readiness.sh \
|
&& chmod ug+x /uid_entrypoint \
|
&& chmod g+rw /etc/passwd \
|
&& /usr/local/bin/fix-permissions.sh /opt/sonatype \
|
&& /usr/local/bin/fix-permissions.sh ${SONATYPE_WORK}
|
|
|
# arbitrary uid recognition at runtime - for OpenShift deployments
|
RUN sed "s@${USER_NAME}:x:${USER_UID}:@${USER_NAME}:x:\${USER_ID}:@g" /etc/passwd > /etc/passwd.template
|
|
#Expose the nexus port
|
EXPOSE 8081
|
|
#Configure the workdir
|
WORKDIR /opt/sonatype/nexus
|
|
USER nexus
|
|
ENV CONTEXT_PATH /nexus \
|
MAX_HEAP 768m \
|
MIN_HEAP 256m \
|
JAVA_OPTS -server -Djava.net.preferIPv4Stack=true \
|
LAUNCHER_CONF ./conf/jetty.xml ./conf/jetty-requestlog.xml
|
|
|
ENTRYPOINT [ "/uid_entrypoint" ]
|
|
CMD java \
|
-Dnexus-work=${SONATYPE_WORK} -Dnexus-webapp-context-path=${CONTEXT_PATH} \
|
-Xms${MIN_HEAP} -Xmx${MAX_HEAP} \
|
-cp 'conf/:lib/*' \
|
${JAVA_OPTS} \
|
org.sonatype.nexus.bootstrap.Launcher ${LAUNCHER_CONF}
|