Skip to content

CLOUDP-334392 - Make delve part of the Dockerfile staging #302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 4 additions & 21 deletions docker/mongodb-agent/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,20 @@
ARG init_database_image
FROM ${init_database_image} AS init_database

FROM public.ecr.aws/docker/library/golang:1.24 AS dependency_downloader

WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes/

COPY go.mod go.sum ./

RUN go mod download

FROM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder

WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes/

COPY --from=dependency_downloader /go/pkg /go/pkg
COPY . /go/src/github.com/mongodb/mongodb-kubernetes

RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false go build -o /readinessprobe ./mongodb-community-operator/cmd/readiness/main.go
RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false go build -o /version-upgrade-hook ./mongodb-community-operator/cmd/versionhook/main.go

FROM scratch AS base
ARG mongodb_tools_url_ubi
ARG mongodb_agent_url_ubi

COPY --from=readiness_builder /readinessprobe /data/
COPY --from=readiness_builder /version-upgrade-hook /data/

ADD ${mongodb_tools_url_ubi} /data/mongodb_tools_ubi.tgz
ADD ${mongodb_agent_url_ubi} /data/mongodb_agent_ubi.tgz

COPY --from=init_database /readinessprobe /data/
COPY --from=init_database /version-upgrade-hook /data/
COPY --from=init_database /probes/probe.sh /data/probe.sh
COPY --from=init_database /scripts/agent-launcher-lib.sh /data/
COPY --from=init_database /scripts/agent-launcher.sh /data/
COPY --from=init_database /licenses/LICENSE /data/
COPY --from=init_database /delve /data/

FROM registry.access.redhat.com/ubi9/ubi-minimal

Expand All @@ -54,6 +36,7 @@ COPY --from=base /data/version-upgrade-hook /opt/scripts/version-upgrade-hook
COPY --from=base /data/agent-launcher-lib.sh /opt/scripts/agent-launcher-lib.sh
COPY --from=base /data/agent-launcher.sh /opt/scripts/agent-launcher.sh
COPY --from=base /data/LICENSE /licenses/LICENSE
COPY --from=base /data/dlv c

# Replace libcurl-minimal and curl-minimal with the full versions
# https://bugzilla.redhat.com/show_bug.cgi?id=1994521
Expand Down
9 changes: 6 additions & 3 deletions docker/mongodb-kubernetes-init-appdb/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
FROM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder
FROM public.ecr.aws/docker/library/golang:1.24 AS builder

COPY . /go/src/github.com/mongodb/mongodb-kubernetes
WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes
RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false go build -o /readinessprobe ./mongodb-community-operator/cmd/readiness/main.go
RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false go build -o /version-upgrade-hook ./mongodb-community-operator/cmd/versionhook/main.go
RUN CGO_ENABLED=0 GOBIN=/delve go install github.com/go-delve/delve/cmd/[email protected]

FROM scratch AS base

ARG mongodb_tools_url_ubi

COPY --from=readiness_builder /readinessprobe /data/
COPY --from=readiness_builder /version-upgrade-hook /data/version-upgrade-hook
COPY --from=builder /readinessprobe /data/readinessprobe
COPY --from=builder /version-upgrade-hook /data/version-upgrade-hook
COPY --from=builder /delve /data/delve

ADD ${mongodb_tools_url_ubi} /data/mongodb_tools_ubi.tgz

Expand All @@ -37,6 +39,7 @@ COPY --from=base /data/probe.sh /probes/probe.sh
COPY --from=base /data/scripts/ /scripts/
COPY --from=base /data/licenses /licenses/
COPY --from=base /data/version-upgrade-hook /probes/version-upgrade-hook
COPY --from=base /data/delve /delve/

RUN microdnf -y update --nodocs \
&& microdnf -y install --nodocs tar gzip \
Expand Down
9 changes: 6 additions & 3 deletions docker/mongodb-kubernetes-init-database/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
FROM public.ecr.aws/docker/library/golang:1.24 AS readiness_builder
FROM public.ecr.aws/docker/library/golang:1.24 AS builder

COPY . /go/src/github.com/mongodb/mongodb-kubernetes
WORKDIR /go/src/github.com/mongodb/mongodb-kubernetes
RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false go build -o /readinessprobe ./mongodb-community-operator/cmd/readiness/main.go
RUN CGO_ENABLED=0 GOFLAGS=-buildvcs=false go build -o /version-upgrade-hook ./mongodb-community-operator/cmd/versionhook/main.go
RUN CGO_ENABLED=0 GOBIN=/delve go install github.com/go-delve/delve/cmd/[email protected]

FROM scratch AS base

ARG mongodb_tools_url_ubi

COPY --from=readiness_builder /readinessprobe /data/
COPY --from=readiness_builder /version-upgrade-hook /data/version-upgrade-hook
COPY --from=builder /readinessprobe /data/readinessprobe
COPY --from=builder /version-upgrade-hook /data/version-upgrade-hook
COPY --from=builder /delve /data/delve

ADD ${mongodb_tools_url_ubi} /data/mongodb_tools_ubi.tgz

Expand All @@ -36,6 +38,7 @@ COPY --from=base /data/readinessprobe /probes/readinessprobe
COPY --from=base /data/probe.sh /probes/probe.sh
COPY --from=base /data/scripts/ /scripts/
COPY --from=base /data/licenses /licenses/
COPY --from=base /data/delve /delve/

RUN microdnf -y update --nodocs \
&& microdnf -y install --nodocs tar gzip \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -220,19 +220,7 @@ fi

debug="${MDB_AGENT_DEBUG-}"
if [ "${debug}" = "true" ]; then
cd ${mdb_downloads_dir} || true
mkdir -p /var/lib/mongodb-mms-automation/gopath
mkdir -p /var/lib/mongodb-mms-automation/go
curl -LO https://go.dev/dl/go1.20.1.linux-amd64.tar.gz
tar -xzf go1.20.1.linux-amd64.tar.gz
export GOPATH=${mdb_downloads_dir}/gopath
export GOCACHE=${mdb_downloads_dir}/.cache
export PATH=${PATH}:${mdb_downloads_dir}/go/bin
export PATH=${PATH}:${mdb_downloads_dir}/gopath/bin
go install github.com/go-delve/delve/cmd/dlv@latest
export PATH=${PATH}:${mdb_downloads_dir}/gopath/bin
cd ${mdb_downloads_dir} || true
dlv --headless=true --listen=:5006 --accept-multiclient=true --continue --api-version=2 exec "${AGENT_BINARY_PATH}" -- "${agentOpts[@]}" "${splittedAgentFlags[@]}" 2>> "${MDB_LOG_FILE_AUTOMATION_AGENT_STDERR}" > >(json_log "automation-agent-stdout") &
/opt/scripts/dlv --headless=true --listen=:5006 --accept-multiclient=true --continue --api-version=2 exec "${AGENT_BINARY_PATH}" -- "${agentOpts[@]}" "${splittedAgentFlags[@]}" 2>> "${MDB_LOG_FILE_AUTOMATION_AGENT_STDERR}" > >(json_log "automation-agent-stdout") &
else
# Note, that we do logging in subshell - this allows us to save the correct PID to variable (not the logging one)
"${AGENT_BINARY_PATH}" "${agentOpts[@]}" "${splittedAgentFlags[@]}" 2>> "${MDB_LOG_FILE_AUTOMATION_AGENT_STDERR}" >> >(json_log "automation-agent-stdout") &
Expand Down
Loading