# cat Dockerfile
##################################################################################
FROM centos:centos7
ENV NEXUS_VERSION="3.16.0-01" \
NEXUS_BASE="/opt/nexus"
RUN groupadd -g 2020 nexus && \
useradd -r -u 2020 -g 2020 -m -c "Nexus Repository Manager" -d ${NEXUS_BASE} -s /bin/false nexus
ADD jre-8u212-linux-x64.tar.gz /usr/local
ADD nexus.tar.gz ${NEXUS_BASE}
COPY start-nexus-repository-manager.sh /opt
RUN chown -R nexus:nexus ${NEXUS_BASE} /opt/start-nexus-repository-manager.sh
VOLUME ${NEXUS_BASE}
EXPOSE 8443
USER nexus
CMD ["sh", "-c", "/opt/start-nexus-repository-manager.sh"]
#####################################################################################
# cat start-nexus-repository-manager.sh
##############################################################
#!/bin/bash
umask 0027
JAVA_HOME="/usr/local/jre1.8.0_212"
PATH=$JAVA_HOME/bin:$PATH
cd /opt/nexus/nexus- ${NEXUS_BASE}
exec ./bin/nexus run
#################################################################
# mkdir /opt/nexus
# tar -zxf nexus-3.16.0-01-unix.tar -C /opt/nexus
# vim /opt/nexus/sonatype-work/nexus3/etc/nexus.properties
#####################################################################
application-port-ssl=8443
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-https.xml,${jetty.etc}/jetty-requestlog.xml
#####################################################################
# vim /opt/nexus/nexus-3.16.0-01/bin/nexus.rc
###########################
run_as_user="nexus"
###########################
# vim /opt/nexus/nexus-3.16.0-01/etc/jetty/jetty-https.xml
##################################################
###################################################
# cat genCert.sh
###################################################
keytool \
-genkeypair \
-keystore keystore.jks \
-alias nexus \
-storepass 123456 \
-keypass 456789 \
-keyalg RSA \
-keysize 2048 \
-validity 3650 \
-dname "CN=NEXUS,OU=TEST,O=TEST,L=Shenzhen,ST=Guangdong,C=CN" \
-ext "SAN=IP:xx.xx.xx.xx" \
-ext "BC=ca:true"
###################################################
# docker build -f Dockerfile -t nexus:3.16.0-01sec .
# docker run -it -d -v /opt/nexus:/opt/nexus -p 8443:8443 --name nexus nexus:3.16.0-01sec
# docker logs -f nexus