# Dockerfile for MCP Toolbox Server # Runs MCP Toolbox as an HTTP server for Cloud SQL PostgreSQL access FROM debian:bookworm-slim # Install dependencies RUN apt-get update && apt-get install -y \ ca-certificates \ curl \ && rm -rf /var/lib/apt/lists/* # Set MCP Toolbox version ARG TOOLBOX_VERSION=v0.18.0 # Detect architecture and download appropriate binary RUN ARCH=$(dpkg --print-architecture) && \ if [ "$ARCH" = "amd64" ]; then \ TOOLBOX_ARCH="amd64"; \ elif [ "$ARCH" = "arm64" ]; then \ TOOLBOX_ARCH="arm64"; \ else \ echo "Unsupported architecture: $ARCH" && exit 1; \ fi && \ curl -L "https://storage.googleapis.com/genai-toolbox/${TOOLBOX_VERSION}/linux/${TOOLBOX_ARCH}/toolbox" \ -o /usr/local/bin/toolbox && \ chmod +x /usr/local/bin/toolbox # Verify installation RUN toolbox --version # Create credentials directory RUN mkdir -p /app/credentials # Copy entrypoint script COPY docker/entrypoint-toolbox.sh /entrypoint.sh RUN chmod +x /entrypoint.sh # Expose port for HTTP server EXPOSE 5000 # Environment variables for Cloud SQL connection # These will be provided via docker-compose or docker run ENV CLOUD_SQL_POSTGRES_PROJECT="" \ CLOUD_SQL_POSTGRES_REGION="" \ CLOUD_SQL_POSTGRES_INSTANCE="" \ CLOUD_SQL_POSTGRES_DATABASE="" \ CLOUD_SQL_POSTGRES_USER="" \ CLOUD_SQL_POSTGRES_PASSWORD="" \ GCP_SERVICE_ACCOUNT_JSON="" # Run MCP Toolbox via entrypoint script (handles GCP credentials) ENTRYPOINT ["/entrypoint.sh"]