| # Dockerfile for the Golang 1.26.6 container. | |
| FROM golang:1.26.6 as nodeprofiler | |
| # Retrieving application dependencies. | |
| COPY . /work/ | |
| # Changing to the app directory. | |
| WORKDIR /work/src/cmd/nodeprofiler | |
| ARG TARGETOS | |
| ARG TARGETARCH | |
| RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o nodeprofiler main.go | |
| # Dockerfile for the Nodeprofiler container using Debian slim image for a lean | |
| # production container. | |
| FROM marketplace.gcr.io/google/debian11 | |
| # Installing certificates containers need to log data to Google Cloud Logging | |
| # as well as all the dependencies needed to run the profiler tool. | |
| RUN apt-get update && DEBIAN_FRONTEND=noninteractive \ | |
| apt-get install --no-install-recommends -y \ | |
| ca-certificates \ | |
| sysstat=12.0.3-2 \ | |
| procps && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Copying the nodeprofiler binary to the production image. | |
| COPY --from=nodeprofiler /work/src/cmd/nodeprofiler/nodeprofiler /nodeprofiler | |
| # Entrypoint sets the profiler image's main command. | |
| ENTRYPOINT ["/nodeprofiler"] | |
| # CMD sets the profiler image's default flags. If the user does not specify flags, | |
| # containers shall display supported functionalities. | |
| CMD ["--help"] |