diff --git a/docker/mongodb-agent/Dockerfile b/docker/mongodb-agent/Dockerfile index 5ec4e127b..04eb6cdee 100644 --- a/docker/mongodb-agent/Dockerfile +++ b/docker/mongodb-agent/Dockerfile @@ -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 @@ -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 diff --git a/docker/mongodb-kubernetes-init-appdb/Dockerfile b/docker/mongodb-kubernetes-init-appdb/Dockerfile index ed0cea9dd..9cb346119 100644 --- a/docker/mongodb-kubernetes-init-appdb/Dockerfile +++ b/docker/mongodb-kubernetes-init-appdb/Dockerfile @@ -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/dlv@v1.25.1 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 @@ -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 \ diff --git a/docker/mongodb-kubernetes-init-database/Dockerfile b/docker/mongodb-kubernetes-init-database/Dockerfile index 6c861fb6a..92a7a23e4 100644 --- a/docker/mongodb-kubernetes-init-database/Dockerfile +++ b/docker/mongodb-kubernetes-init-database/Dockerfile @@ -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/dlv@v1.25.1 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 @@ -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 \ diff --git a/docker/mongodb-kubernetes-init-database/content/agent-launcher.sh b/docker/mongodb-kubernetes-init-database/content/agent-launcher.sh index 7bdf8164c..84404022d 100755 --- a/docker/mongodb-kubernetes-init-database/content/agent-launcher.sh +++ b/docker/mongodb-kubernetes-init-database/content/agent-launcher.sh @@ -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") &