Skip to content

Commit fc02e74

Browse files
Support local tar.gz for Ops Manager dockerfile
1 parent c6c0220 commit fc02e74

File tree

3 files changed

+45
-8
lines changed

3 files changed

+45
-8
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.tar.gz

docker/mongodb-enterprise-ops-manager/Dockerfile

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
# Build compilable stuff
22

3-
FROM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder
3+
FROM --platform=${BUILDPLATFORM} public.ecr.aws/docker/library/golang:1.24 AS readiness_builder
44
COPY . /go/src/github.com/mongodb/mongodb-kubernetes
55
WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes
66

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
7+
ARG TARGETOS
8+
ARG TARGETARCH
9+
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -a -buildvcs=false -o /data/scripts/mmsconfiguration ./docker/mongodb-kubernetes-init-ops-manager/mmsconfiguration/edit_mms_configuration.go
10+
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -a -buildvcs=false -o /data/scripts/backup-daemon-readiness-probe ./docker/mongodb-kubernetes-init-ops-manager/backupdaemon_readinessprobe/backupdaemon_readiness.go
911

1012
# Move binaries and scripts
1113
FROM scratch AS base
@@ -23,6 +25,7 @@ FROM registry.access.redhat.com/ubi9/ubi-minimal
2325

2426
ARG version
2527
ARG om_download_url
28+
ARG use_local_tarball=false
2629

2730
LABEL name="MongoDB Enterprise Ops Manager" \
2831
maintainer="[email protected]" \
@@ -70,10 +73,16 @@ RUN microdnf install --disableplugin=subscription-manager -y \
7073
COPY --from=base /data/licenses /licenses/
7174
COPY --from=base /data/scripts /opt/scripts
7275

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}"
76+
# Copy local tarball if use_local_tarball is true, otherwise download from URL
77+
COPY docker/mongodb-enterprise-ops-manager/package.tar.gz* /tmp/
78+
RUN if [ "${use_local_tarball}" = "true" ]; then \
79+
mv /tmp/package.tar.gz /tmp/ops_manager.tar.gz; \
80+
else \
81+
curl --fail -L -o /tmp/ops_manager.tar.gz ${om_download_url}; \
82+
fi \
83+
&& tar -xzf /tmp/ops_manager.tar.gz -C / \
84+
&& rm /tmp/ops_manager.tar.gz \
85+
&& mv /mongodb-mms* "${MMS_HOME}"
7786

7887
# permissions
7988
RUN chmod -R 0777 "${MMS_LOG_DIR}" \
Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
### Building locally
22

3-
For building the MongoDB Enterprise Ops Manager Docker image locally use the example command:
3+
#### Option 1: Download from remote URL
4+
5+
For building the MongoDB Enterprise Ops Manager Docker image by downloading from a URL:
46

57
```bash
68
VERSION="8.0.7"
@@ -9,3 +11,28 @@ docker buildx build --load --progress plain . -f docker/mongodb-enterprise-ops-m
911
--build-arg version="${VERSION}" \
1012
--build-arg om_download_url="${OM_DOWNLOAD_URL}"
1113
```
14+
15+
#### Option 2: Use local tar.gz file
16+
17+
To use a locally built tar.gz file:
18+
19+
1. Build Ops Manager (if it fails look into [this wiki](https://wiki.corp.mongodb.com/spaces/MMS/pages/314679084/Ops+Manager+Development+-+Working+with+Build+Systems))
20+
21+
```bash
22+
cd ${MMS_HOME}
23+
bazel build --cpu=amd64 --build_env=tarball //server:package
24+
```
25+
26+
2. Copy your local tarball to the docker directory:
27+
28+
```bash
29+
cp ${MMS_HOME}/bazel-bin/server/package.tar.gz docker/mongodb-enterprise-ops-manager/
30+
```
31+
32+
3. Build using the local tarball:
33+
```bash
34+
VERSION="local-build"
35+
docker buildx build --load --progress plain --platform linux/amd64 . -f docker/mongodb-enterprise-ops-manager/Dockerfile -t "mongodb-enterprise-ops-manager:${VERSION}" \
36+
--build-arg version="${VERSION}" \
37+
--build-arg use_local_tarball=true
38+
```

0 commit comments

Comments
 (0)