Skip to content

Commit 7d8158c

Browse files
committed
Add Dockerfile to agent and om
1 parent c3ff667 commit 7d8158c

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# Build compilable stuff
2+
3+
FROM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder
4+
COPY . /go/src/github.com/mongodb/mongodb-kubernetes
5+
WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes
6+
7+
RUN CGO_ENABLED=0 go build -a -buildvcs=false -o /data/scripts/mmsconfiguration ./docker/mongodb-kubernetes-init-ops-manager/mmsconfiguration/edit_mms_configuration.go
8+
RUN CGO_ENABLED=0 go build -a -buildvcs=false -o /data/scripts/backup-daemon-readiness-probe ./docker/mongodb-kubernetes-init-ops-manager/backupdaemon_readinessprobe/backupdaemon_readiness.go
9+
10+
# Move binaries and scripts
11+
FROM scratch AS base
12+
13+
COPY --from=readiness_builder /data/scripts/mmsconfiguration /data/scripts/mmsconfiguration
14+
COPY --from=readiness_builder /data/scripts/backup-daemon-readiness-probe /data/scripts/backup-daemon-readiness-probe
15+
16+
# After v2.0, when non-Static Agent images will be removed, please ensure to copy those files
17+
# into ./docker/mongodb-enterprise-ops-manager directory. Leaving it this way will make the maintenance easier.
18+
COPY ./docker/mongodb-kubernetes-init-ops-manager/scripts/docker-entry-point.sh /data/scripts
19+
COPY ./docker/mongodb-kubernetes-init-ops-manager/scripts/backup-daemon-liveness-probe.sh /data/scripts
20+
COPY ./docker/mongodb-kubernetes-init-ops-manager/LICENSE /data/licenses/mongodb-enterprise-ops-manager
21+
22+
FROM registry.access.redhat.com/ubi9/ubi-minimal
23+
24+
ARG version
25+
ARG om_download_url
26+
27+
LABEL name="MongoDB Enterprise Ops Manager" \
28+
maintainer="[email protected]" \
29+
vendor="MongoDB" \
30+
version=${version} \
31+
release="1" \
32+
summary="MongoDB Enterprise Ops Manager Image" \
33+
description="MongoDB Enterprise Ops Manager"
34+
35+
ENV MMS_HOME=/mongodb-ops-manager
36+
ENV MMS_PROP_FILE=${MMS_HOME}/conf/conf-mms.properties
37+
ENV MMS_CONF_FILE=${MMS_HOME}/conf/mms.conf
38+
ENV MMS_LOG_DIR=${MMS_HOME}/logs
39+
ENV MMS_TMP_DIR=${MMS_HOME}/tmp
40+
41+
EXPOSE 8080
42+
43+
# OpsManager docker image needs to have the MongoDB dependencies because the
44+
# backup daemon is running its database locally
45+
46+
# Replace libcurl-minimal and curl-minimal with the full versions
47+
# https://bugzilla.redhat.com/show_bug.cgi?id=1994521
48+
RUN microdnf install -y libssh libpsl libbrotli \
49+
&& microdnf download curl libcurl \
50+
&& rpm -Uvh --nodeps --replacefiles "*curl*$( uname -i ).rpm" \
51+
&& microdnf remove -y libcurl-minimal curl-minimal
52+
53+
RUN microdnf install --disableplugin=subscription-manager -y \
54+
cyrus-sasl \
55+
cyrus-sasl-gssapi \
56+
cyrus-sasl-plain \
57+
krb5-libs \
58+
libpcap \
59+
lm_sensors-libs \
60+
net-snmp \
61+
net-snmp-agent-libs \
62+
openldap \
63+
openssl \
64+
tar \
65+
rpm-libs \
66+
net-tools \
67+
procps-ng \
68+
ncurses
69+
70+
COPY --from=base /data/licenses /licenses/
71+
COPY --from=base /data/scripts /opt/scripts
72+
73+
RUN curl --fail -L -o ops_manager.tar.gz ${om_download_url} \
74+
&& tar -xzf ops_manager.tar.gz \
75+
&& rm ops_manager.tar.gz \
76+
&& mv mongodb-mms* "${MMS_HOME}"
77+
78+
# permissions
79+
RUN chmod -R 0777 "${MMS_LOG_DIR}" \
80+
&& chmod -R 0777 "${MMS_TMP_DIR}" \
81+
&& chmod -R 0775 "${MMS_HOME}/conf" \
82+
&& chmod -R 0775 "${MMS_HOME}/jdk" \
83+
&& mkdir "${MMS_HOME}/mongodb-releases/" \
84+
&& chmod -R 0775 "${MMS_HOME}/mongodb-releases" \
85+
&& chmod -R 0777 "${MMS_CONF_FILE}" \
86+
&& chmod -R 0777 "${MMS_PROP_FILE}"
87+
88+
# The "${MMS_HOME}/conf" will be populated by the docker-entry-point.sh.
89+
# For now we need to move into the templates directory.
90+
RUN cp -r "${MMS_HOME}/conf" "${MMS_HOME}/conf-template"
91+
92+
USER 2000
93+
94+
# operator to change the entrypoint to: /mongodb-ops-manager/bin/mongodb-mms start_mms (or a wrapper around this)
95+
ENTRYPOINT [ "sleep infinity" ]

0 commit comments

Comments
 (0)