# Dockerfile for the Golang 1.23.0 container.

FROM golang:1.23.0 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"]
