Richard Allred
2019-05-23 497620c4d1bcb410267c56351432f87fb3aee5a4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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}