# CI/build image with Debian Trixie (glibc)
FROM golang:1.25-trixie

RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    bash \
    git \
    make \
    gcc \
    g++ \
    pkg-config \
    openssh-client \
    protobuf-compiler \
    libprotobuf-dev \
    libx11-dev \
    libxfixes-dev \
    libxcb1-dev \
 && rm -rf /var/lib/apt/lists/*

RUN go install github.com/jstemmer/go-junit-report@v1.0.0 && \
    go install github.com/CycloneDX/cyclonedx-gomod/cmd/cyclonedx-gomod@v1.10.0 && \
    go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.11 && \
    go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.6.2 && \
    chmod +x /go/bin/* && \
    mv /go/bin/* /usr/local/bin/ && \
    rm -rf /root/.cache /go/pkg/mod/cache

RUN groupadd -g 1000 build && \
    useradd -m -u 1000 -g build -s /bin/bash build && \
    mkdir -p /home/build/tmp/bin /home/build/tmp/cache /home/build/.ssh && \
    chown -R build:build /home/build

USER build

RUN ssh-keyscan -H bitbucket.org >> /home/build/.ssh/known_hosts

ENV GOPATH=/home/build/tmp
ENV GOCACHE=/home/build/tmp/cache
ENV PATH="/home/build/tmp/bin:/usr/local/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ENV CGO_ENABLED=1