Skip to content

Commit 3f43b37

Browse files
authored
Merge pull request #736 from sassoftware/cleanup-dockerfile
Cleanup Dockerfile
2 parents 1e083fd + f7af27b commit 3f43b37

File tree

1 file changed

+55
-68
lines changed

1 file changed

+55
-68
lines changed

v4m-container/Dockerfile

Lines changed: 55 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,73 @@
1-
ARG ALPINE_TAG=latest
2-
3-
# Need glibc to support the OpenShift 'oc' CLI
4-
# https://hub.docker.com/r/frolvlad/alpine-glibc/
5-
FROM frolvlad/alpine-glibc:$ALPINE_TAG
1+
FROM frolvlad/alpine-glibc:latest
62

73
# Version of the Viya Monitoring for Kubernetes deployment to download to the container
84
ARG V4M_TAG="stable"
9-
105
ARG OS=linux
116
ARG ARCH=amd64
12-
137
ARG HELM_VER=v3.8.0
148
ARG KUBECTL_VER=v1.23.4
159
# oc versions: https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/
1610
ARG OC_VER=4.8
1711

18-
# Setting environment variables
19-
ENV V4M_PATH=/opt/v4m
20-
ENV KUBECONFIG=$V4M_PATH/.kube/config
21-
ENV PATH=$V4M_PATH/bin:$PATH
22-
ENV KEEP_TMP_DIR=true
12+
# Set environment variables in a single layer
13+
ENV V4M_PATH=/opt/v4m \
14+
KUBECONFIG=/opt/v4m/.kube/config \
15+
PATH=/opt/v4m/bin:$PATH \
16+
KEEP_TMP_DIR=true \
17+
USER_DIR=/opt/v4m/user_dir \
18+
TERM=xterm-256color
2319

24-
RUN mkdir -p $V4M_PATH/bin $V4M_PATH/.kube $V4M_PATH/user_dir
25-
WORKDIR $V4M_PATH
20+
# Create directory structure in a single layer
21+
RUN mkdir -p $V4M_PATH/bin $V4M_PATH/.kube $V4M_PATH/user_dir && \
22+
touch ${KUBECONFIG} && \
23+
chmod 600 ${KUBECONFIG}
2624

27-
# Create $V4M_PATH/.kube/config if it doesn't exist
28-
RUN touch ${KUBECONFIG}
25+
WORKDIR $V4M_PATH
2926

30-
# Copy contents from kubeconfig and user_dir to the container
27+
# Copy configuration files
3128
COPY kubeconfig/ /opt/v4m/.kube/
3229
COPY user_dir/ /opt/v4m/user_dir/
3330

34-
RUN chmod 600 ${KUBECONFIG}
35-
ENV USER_DIR=/opt/v4m/user_dir
36-
ENV TERM=xterm-256color
37-
38-
# Dependencies needed for python script
39-
RUN apk add --no-cache python3 py3-pip
40-
RUN pip3 install opensearch-py
41-
42-
# Download necessary executables
43-
RUN set -eux; \
44-
apk add --no-cache \
45-
bash \
46-
coreutils \
47-
ncurses \
48-
curl \
49-
git \
50-
jq \
51-
wget \
52-
yq \
53-
openssh \
54-
procps \
55-
openssl \
56-
;
57-
58-
# kubectl
59-
RUN wget https://storage.googleapis.com/kubernetes-release/release/$KUBECTL_VER/bin/$OS/$ARCH/kubectl; \
60-
chmod +x ./kubectl; \
61-
mv ./kubectl $V4M_PATH/bin/; \
62-
mkdir -p $V4M_PATH/.kube; \
63-
touch /opt/v4m/.kube/config
64-
65-
# helm
66-
RUN wget https://get.helm.sh/helm-$HELM_VER-$OS-$ARCH.tar.gz; \
67-
tar -xvf helm-$HELM_VER-$OS-$ARCH.tar.gz; \
68-
mv $OS-$ARCH/helm $V4M_PATH/bin/; \
69-
rm -rf $OS-$ARCH; \
70-
rm helm-$HELM_VER-$OS-$ARCH.tar.gz
71-
72-
# oc
73-
RUN mkdir oc; \
74-
cd oc; \
75-
wget https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable-${OC_VER}/openshift-client-${OS}.tar.gz; \
76-
tar -xvf openshift-client-${OS}.tar.gz; \
77-
mv oc $V4M_PATH/bin/; \
78-
cd ..; \
79-
rm -rf oc/
80-
81-
# viya4-monitoring-kubernetes
82-
RUN V4M_BRANCH="$V4M_TAG"; \
83-
if [ "$V4M_BRANCH" == "latest" ]; then V4M_BRANCH="stable"; fi; \
84-
git clone --depth 1 -b ${V4M_BRANCH} https://github.com/sassoftware/viya4-monitoring-kubernetes
31+
# Install system dependencies - make sure to complete this step properly
32+
RUN apk update && \
33+
apk add --no-cache \
34+
bash \
35+
coreutils \
36+
ncurses \
37+
curl \
38+
git \
39+
jq \
40+
wget \
41+
yq \
42+
openssh \
43+
procps \
44+
openssl \
45+
python3 \
46+
py3-pip
47+
48+
# Install opensearch-py using apk and create a symlink if needed
49+
RUN pip3 install --break-system-packages opensearch-py
50+
51+
# Install binaries
52+
RUN wget -q https://storage.googleapis.com/kubernetes-release/release/$KUBECTL_VER/bin/$OS/$ARCH/kubectl && \
53+
chmod +x ./kubectl && \
54+
mv ./kubectl $V4M_PATH/bin/ && \
55+
# Install helm
56+
wget -q https://get.helm.sh/helm-$HELM_VER-$OS-$ARCH.tar.gz && \
57+
tar -xf helm-$HELM_VER-$OS-$ARCH.tar.gz && \
58+
mv $OS-$ARCH/helm $V4M_PATH/bin/ && \
59+
# Install oc
60+
wget -q https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/stable-${OC_VER}/openshift-client-${OS}.tar.gz && \
61+
tar -xf openshift-client-${OS}.tar.gz && \
62+
mv oc $V4M_PATH/bin/ && \
63+
# Clone repository
64+
V4M_BRANCH="${V4M_TAG}" && \
65+
if [ "$V4M_BRANCH" == "latest" ]; then V4M_BRANCH="stable"; fi && \
66+
git clone --depth 1 -b ${V4M_BRANCH} https://github.com/sassoftware/viya4-monitoring-kubernetes && \
67+
# Cleanup
68+
rm -rf helm-$HELM_VER-$OS-$ARCH.tar.gz $OS-$ARCH openshift-client-${OS}.tar.gz
8569

8670
WORKDIR $V4M_PATH/viya4-monitoring-kubernetes
71+
72+
# Add a health check or default CMD if appropriate
73+
CMD ["bash"]

0 commit comments

Comments
 (0)