Skip to content

Commit 49d3e81

Browse files
authored
Merge pull request #76 from Helene/dockerfile_optimization
rework Dockerfile syntax
2 parents 3ca976f + de37ea5 commit 49d3e81

File tree

1 file changed

+56
-60
lines changed

1 file changed

+56
-60
lines changed

Dockerfile

Lines changed: 56 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,17 @@ LABEL com.ibm.summary="It allows the IBM Spectrum Scale users to perform perform
1212
ENV PYTHONDONTWRITEBYTECODE 1
1313
ENV PYTHONUNBUFFERED 1
1414

15-
COPY ./requirements/requirements_ubi8.txt /root/requirements_ubi8.txt
16-
17-
RUN yum install -y python36 python36-devel
18-
RUN /usr/bin/pip3 install --upgrade pip
19-
20-
RUN /usr/bin/pip3 install -r /root/requirements_ubi8.txt
21-
RUN echo "Installed python version: $(/usr/bin/python3 -V)"
22-
RUN echo "Installed python packages: $(/usr/bin/pip3 list)"
23-
24-
USER root
15+
ARG USERNAME=bridge
16+
ENV USER=$USERNAME
2517

26-
RUN mkdir -p /opt/IBM/bridge
27-
RUN mkdir -p /opt/IBM/zimon
28-
RUN mkdir -p /var/mmfs/gen
29-
RUN mkdir -p /etc/ssl/certs
30-
RUN mkdir -p /etc/perfmon-api-keys
18+
ARG GROUPNAME=bridge
19+
ENV GROUP=$GROUPNAME
3120

32-
COPY LICENSE /licenses/
21+
ARG USERID=2001
22+
ENV UID=$USERID
3323

34-
COPY ./source/ /opt/IBM/bridge
35-
COPY ./source/gpfsConfig/mmsdrfs* /var/mmfs/gen/
36-
COPY ./source/gpfsConfig/ZIMon* /opt/IBM/zimon/
24+
ARG GROUPID=0
25+
ENV GID=$GROUPID
3726

3827
ARG HTTPPROTOCOL=http
3928
ENV PROTOCOL=$HTTPPROTOCOL
@@ -49,7 +38,6 @@ RUN echo "the PERFMONPORT port is set to $SERVERPORT"
4938

5039
ARG CERTPATH='/etc/bridge_ssl/certs'
5140
ENV TLSKEYPATH=$CERTPATH
52-
RUN mkdir -p $CERTPATH
5341

5442
ARG KEYFILE=None
5543
ENV TLSKEYFILE=$KEYFILE
@@ -62,70 +50,78 @@ ENV APIKEYNAME=$KEYNAME
6250

6351
ARG KEYVALUE=None
6452
ENV APIKEYVALUE=$KEYVALUE
65-
RUN if [ "${APIKEYVALUE:0:1}" = "/" ]; then ln -s $APIKEYVALUE /etc/perfmon-api-keys; echo "APIKEYVALUE is a PATH"; else echo "APIKEYVALUE not a PATH"; fi
66-
67-
RUN if [ -z "$TLSKEYPATH" ] || [ -z "$TLSCERTFILE" ] || [ -z "$TLSKEYFILE" ] && [ "$PROTOCOL" = "https" ]; then echo "TLSKEYPATH FOR SSL CONNECTION NOT SET - ERROR"; exit 1; else echo "PASS"; fi
68-
RUN echo "the ssl certificates path is set to $TLSKEYPATH"
6953

7054
ARG PMCOLLECTORIP=0.0.0.0
7155
ENV SERVER=$PMCOLLECTORIP
7256
RUN echo "the pmcollector server ip is set to $SERVER"
7357

7458
ARG DEFAULTLOGPATH='/var/log/ibm_bridge_for_grafana'
7559
ENV LOGPATH=$DEFAULTLOGPATH
76-
RUN mkdir -p $LOGPATH
7760
RUN echo "the log will use $LOGPATH"
7861

62+
COPY ./requirements/requirements_ubi8.txt /root/requirements_ubi8.txt
63+
64+
RUN yum install -y python36 python36-devel && \
65+
/usr/bin/pip3 install --upgrade pip && \
66+
/usr/bin/pip3 install -r /root/requirements_ubi8.txt && \
67+
echo "Installed python version: $(/usr/bin/python3 -V)" && \
68+
echo "Installed python packages: $(/usr/bin/pip3 list)"
69+
70+
USER root
71+
72+
RUN mkdir -p /opt/IBM/bridge /opt/IBM/zimon /var/mmfs/gen && \
73+
mkdir -p /etc/ssl/certs /etc/perfmon-api-keys $CERTPATH $LOGPATH
74+
75+
COPY LICENSE /licenses/
76+
77+
COPY ./source/ /opt/IBM/bridge
78+
COPY ./source/gpfsConfig/mmsdrfs* /var/mmfs/gen/
79+
COPY ./source/gpfsConfig/ZIMon* /opt/IBM/zimon/
80+
81+
RUN if [ "${APIKEYVALUE:0:1}" = "/" ]; then ln -s $APIKEYVALUE /etc/perfmon-api-keys; echo "APIKEYVALUE is a PATH"; else echo "APIKEYVALUE not a PATH"; fi && \
82+
if [ -z "$TLSKEYPATH" ] || [ -z "$TLSCERTFILE" ] || [ -z "$TLSKEYFILE" ] && [ "$PROTOCOL" = "https" ]; then echo "TLSKEYPATH FOR SSL CONNECTION NOT SET - ERROR"; exit 1; else echo "PASS"; fi
83+
RUN echo "the ssl certificates path is set to $TLSKEYPATH"
84+
7985
# Switch to the working directory
8086
WORKDIR /opt/IBM/bridge
8187
RUN echo "$(pwd)"
8288

83-
ARG USERNAME=bridge
84-
ENV USER=$USERNAME
85-
ARG GROUPNAME=bridge
86-
ENV GROUP=$GROUPNAME
87-
ARG USERID=2001
88-
ENV UID=$USERID
89-
ARG GROUPID=0
90-
ENV GID=$GROUPID
91-
9289
# Create a container user
93-
RUN if [ "$GID" -gt "0" ]; then groupadd -g $GID $GROUP; else echo "Since root GID specified skipping groupadd"; fi
94-
RUN useradd -rm -d /home/$UID -s /bin/bash -g $GID -u $UID $USER
90+
RUN if [ "$GID" -gt "0" ]; then groupadd -g $GID $GROUP; else echo "Since root GID specified skipping groupadd"; fi && \
91+
useradd -rm -d /home/$UID -s /bin/bash -g $GID -u $UID $USER
9592

9693
# Change group ownership
97-
RUN chgrp -R $GID /opt/IBM/bridge
98-
RUN chgrp -R $GID /opt/IBM/zimon
99-
RUN chgrp -R $GID /var/mmfs/gen
100-
RUN chgrp -R $GID /etc/ssl/certs
101-
RUN chgrp -R $GID /var/mmfs/gen
102-
RUN chgrp -R $GID /etc/perfmon-api-keys
103-
RUN chgrp -R $GID $TLSKEYPATH
104-
RUN chgrp -R $GID $LOGPATH
94+
RUN chgrp -R $GID /opt/IBM/bridge && \
95+
chgrp -R $GID /opt/IBM/zimon && \
96+
chgrp -R $GID /var/mmfs/gen && \
97+
chgrp -R $GID /etc/ssl/certs && \
98+
chgrp -R $GID /var/mmfs/gen && \
99+
chgrp -R $GID /etc/perfmon-api-keys && \
100+
chgrp -R $GID $TLSKEYPATH && \
101+
chgrp -R $GID $LOGPATH
105102

106103
# Set group permissions
107-
RUN chmod -R g=u /opt/IBM/bridge
108-
RUN chmod -R g=u /opt/IBM/zimon
109-
RUN chmod -R g=u /var/mmfs/gen
110-
RUN chmod -R g=u /etc/ssl/certs
111-
RUN chmod -R g=u /var/mmfs/gen
112-
RUN chmod -R g=u /etc/perfmon-api-keys
113-
RUN chmod -R g=u $TLSKEYPATH
114-
RUN chmod -R g=u $LOGPATH
104+
RUN chmod -R g=u /opt/IBM/bridge && \
105+
chmod -R g=u /opt/IBM/zimon && \
106+
chmod -R g=u /var/mmfs/gen && \
107+
chmod -R g=u /etc/ssl/certs && \
108+
chmod -R g=u /var/mmfs/gen && \
109+
chmod -R g=u /etc/perfmon-api-keys && \
110+
chmod -R g=u $TLSKEYPATH && \
111+
chmod -R g=u $LOGPATH
115112

116113
# Chown all needed files
117-
RUN chown -R $UID:$GID /opt/IBM/bridge
118-
RUN chown -R $UID:$GID /opt/IBM/zimon
119-
RUN chown -R $UID:$GID /var/mmfs/gen
120-
RUN chown -R $UID:$GID /etc/ssl/certs
121-
RUN chown -R $UID:$GID /etc/perfmon-api-keys
122-
RUN chown -R $UID:$GID $TLSKEYPATH
123-
RUN chown -R $UID:$GID $LOGPATH
114+
RUN chown -R $UID:$GID /opt/IBM/bridge && \
115+
chown -R $UID:$GID /opt/IBM/zimon && \
116+
chown -R $UID:$GID /var/mmfs/gen && \
117+
chown -R $UID:$GID /etc/ssl/certs && \
118+
chown -R $UID:$GID /etc/perfmon-api-keys && \
119+
chown -R $UID:$GID $TLSKEYPATH && \
120+
chown -R $UID:$GID $LOGPATH
124121

125122
# Switch user
126123
USER $GID
127124

128-
129125
CMD ["sh", "-c", "python3 zimonGrafanaIntf.py -c 10 -s $SERVER -r $PROTOCOL -p $PORT -P $SERVERPORT -t $TLSKEYPATH -l $LOGPATH --tlsKeyFile $TLSKEYFILE --tlsCertFile $TLSCERTFILE --apiKeyName $APIKEYNAME --apiKeyValue $APIKEYVALUE"]
130126

131127
EXPOSE 4242 8443

0 commit comments

Comments
 (0)