ARG DEBIAN_VERSION=13.2-slim FROM debian:${DEBIAN_VERSION} ARG GOOSE_VERSION=1.18.0 ARG TARGETARCH # Install runtime dependencies RUN apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ libssl3 \ libdbus-1-3 \ libxcb1 \ curl \ bzip2 \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Download and install goose binary based on architecture RUN ARCH=${TARGETARCH:-amd64} && \ case "${ARCH}" in \ amd64) GOOSE_ARCH="x86_64" ;; \ arm64) GOOSE_ARCH="aarch64" ;; \ *) echo "Unsupported architecture: ${ARCH}" && exit 1 ;; \ esac && \ curl -fsSL "https://github.com/block/goose/releases/download/v${GOOSE_VERSION}/goose-${GOOSE_ARCH}-unknown-linux-gnu.tar.bz2" \ -o /tmp/goose.tar.bz2 && \ tar -xjf /tmp/goose.tar.bz2 -C /usr/local/bin && \ chmod +x /usr/local/bin/goose && \ rm /tmp/goose.tar.bz2 # Create non-root user RUN useradd -m -u 1000 -s /bin/bash goose && \ mkdir -p /home/goose/.config/goose && \ chown -R goose:goose /home/goose # Set up environment ENV PATH="/usr/local/bin:${PATH}" ENV HOME="/home/goose" # Switch to non-root user USER goose WORKDIR /home/goose # Default to goose CLI ENTRYPOINT ["/usr/local/bin/goose"] CMD ["--help"]