Skip to content

Commit 6bf3ba0

Browse files
nammnfealebenpae
authored andcommitted
reduce file size of dockerfiles & change dockerfiles for improved caching & some cleanups (#3989)
# Summary - we have been pushing way too much into our docker images -> proof in [1] - merge race operator dockerfile with normal one, if race image can be built -> we are fine - remove not used .dcar dockerfiles - update agent dockerfile for better caching - 12.0.30 removal in release.json, doesn't exist anymore ## [1] Proof of work for size of docker images **with change** ``` docker images REPOSITORY TAG IMAGE ID CREATED SIZE REDACTED 1.25.0-race e3c9ca7a8c66 4 minutes ago 35.3MB sonar-docker-build-8055 latest e3c9ca7a8c66 4 minutes ago 35.3MB REDACTED 1.25.0 33656a37a5e0 9 minutes ago 14.2MB sonar-docker-build-4712 ``` **prior to this change operator image** ``` REDACTED 1.25.0-race 8477bd6e2caf 3 minutes ago 48.1MB sonar-docker-build-6342 latest 8477bd6e2caf 3 minutes ago 48.1MB REDACTED 1.25.0 f150f4701452 9 minutes ago 26.9MB sonar-docker-build-5152 latest f150f4701452 9 minutes ago 26.9MB ``` ## Proof of speed build now takes around 10-20% less time and are smaller: https://spruce.mongodb.com/task/ops_manager_kubernetes_init_test_run_build_operator_ubi_patch_b868d02f6fd0e42d271d33da66f5130744c8804f_676964ab99313b0007506c98_24_12_23_13_25_01/logs?execution=0
1 parent 0180bcd commit 6bf3ba0

File tree

11 files changed

+92
-87
lines changed

11 files changed

+92
-87
lines changed

.dockerignore

Lines changed: 76 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,76 @@
1-
vendor/**
2-
pkg/client/**
3-
samples/*
4-
public/*
5-
.git/**
6-
bin/**
1+
# Exclude version control folders and configuration
2+
.git/
3+
.gitignore
4+
.github/
5+
6+
# Generated or build-related directories
7+
.generated/
8+
vendor/
9+
pkg/client/
10+
docker/mongodb-enterprise-tests
11+
scripts/
12+
samples/
13+
.multi_cluster_local_test_files/
14+
15+
# Python-related ignore patterns
16+
__pycache__/
17+
*.pyc
18+
*.pyo
19+
*.pyd
20+
*.toml
21+
22+
# Virtual environment and dependency files
23+
venv/
24+
.env
25+
26+
# Ignore temporary and system files
27+
*.swp
28+
*.bak
29+
*.tmp
30+
.DS_Store
31+
Thumbs.db
32+
33+
# Testing-related files
34+
*.test.*
35+
*_test.go
36+
cover.out
37+
38+
# Compiled and object files
39+
*.o
40+
*.so
41+
*.dylib
42+
43+
# Logs and binary artifacts
44+
logs/
45+
*.log
46+
*.csv
47+
*.tgz
48+
49+
# Tools and binaries
50+
bin/
51+
tools.go
52+
53+
# Kubernetes and operator-related artifacts
54+
deploy/
55+
config/manifests/
56+
helm_chart/templates/
57+
helm_chart/crds/
58+
public/
59+
60+
# Documentation files
61+
docs/
62+
*.md
63+
64+
# IDE and editor config files
65+
*.iml
66+
*.idea/
67+
.vscode/
68+
69+
# Data and build artifacts
70+
blobs/
71+
ssdlc-report/
72+
73+
# Dockerfiles or specific project directories
74+
# (Add Docker-specific exclusion patterns here if known)
75+
76+
# By excluding directories, specific files inside them are also excluded, so listing every specific file isn't necessary unless needed.

docker/mongodb-agent/Dockerfile.builder

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,21 @@
33
ARG init_database_image
44
FROM ${init_database_image} as init_database
55

6-
# Build compilable stuff
6+
FROM public.ecr.aws/docker/library/golang:1.23 as dependency_downloader
7+
8+
WORKDIR /go/src/github.com/10gen/ops-manager-kubernetes/
9+
10+
COPY go.mod go.sum ./
11+
12+
RUN go mod download
13+
714
FROM public.ecr.aws/docker/library/golang:1.23 as readiness_builder
8-
COPY . /go/src/github.com/10gen/ops-manager-kubernetes
9-
WORKDIR /go/src/github.com/10gen/ops-manager-kubernetes
15+
16+
WORKDIR /go/src/github.com/10gen/ops-manager-kubernetes/
17+
18+
COPY --from=dependency_downloader /go/pkg /go/pkg
19+
COPY go.mod go.sum ./
20+
1021
RUN CGO_ENABLED=0 go build -o /readinessprobe github.com/mongodb/mongodb-kubernetes-operator/cmd/readiness
1122
RUN CGO_ENABLED=0 go build -o /version-upgrade-hook github.com/mongodb/mongodb-kubernetes-operator/cmd/versionhook
1223

docker/mongodb-enterprise-database/Dockerfile.dcar

Lines changed: 0 additions & 18 deletions
This file was deleted.

docker/mongodb-enterprise-init-database/Dockerfile.dcar

Lines changed: 0 additions & 8 deletions
This file was deleted.

docker/mongodb-enterprise-init-ops-manager/Dockerfile.dcar

Lines changed: 0 additions & 5 deletions
This file was deleted.

docker/mongodb-enterprise-operator/Dockerfile.builder

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,8 @@ RUN mkdir -p /data
4242
RUN cat release.json | jq -r '.supportedImages."mongodb-agent" | { "supportedImages": { "mongodb-agent": . } }' > /data/om_version_mapping.json
4343
RUN chmod +r /data/om_version_mapping.json
4444

45-
RUN go install github.com/go-delve/delve/cmd/dlv@latest
46-
4745
FROM scratch
4846

49-
COPY --from=builder /go/bin/dlv /data/dlv
5047
COPY --from=builder /build/mongodb-enterprise-operator /data/
5148
COPY --from=builder /data/om_version_mapping.json /data/om_version_mapping.json
5249

docker/mongodb-enterprise-operator/Dockerfile.dcar

Lines changed: 0 additions & 18 deletions
This file was deleted.

docker/mongodb-enterprise-operator/Dockerfile.race

Lines changed: 0 additions & 12 deletions
This file was deleted.

docker/mongodb-enterprise-operator/Dockerfile.template

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ COPY --from=base /data/licenses /licenses/
3030

3131
USER 2000
3232

33-
{% if debug|default(false) %}
34-
COPY --from=base /data/dlv /usr/local/bin/dlv
35-
{% endif %}
36-
3733
ENTRYPOINT exec /usr/local/bin/mongodb-enterprise-operator
3834

3935
{% block healthcheck %}

docker/mongodb-enterprise-operator/Dockerfile.ubi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ RUN microdnf update \
88
--disableplugin=subscription-manager \
99
--disablerepo=* --enablerepo=ubi-9-appstream-rpms --enablerepo=ubi-9-baseos-rpms -y \
1010
&& rm -rf /var/cache/yum
11+
RUN microdnf install -y glibc-langpack-en
1112
{% endblock -%}

0 commit comments

Comments
 (0)