picoclaw/docker/Dockerfile
曾文锋0668000834 3dbf197e9f feat(docker): pre-install essential dev tools in minimal image
Add commonly used development tools to the minimal Dockerfile:
- curl: HTTP requests and health checks
- jq: JSON processing
- git: Version control for skills
- python3 + py3-pip: Python script support
- bash: Better shell scripting support

These tools are essential for many PicoClaw skills and MCP tools
to function properly in containerized environments.

Fixes #1228
2026-03-11 09:34:37 +08:00

51 lines
1.1 KiB
Docker

# ============================================================
# Stage 1: Build the picoclaw binary
# ============================================================
FROM golang:1.25-alpine AS builder
RUN apk add --no-cache git make
WORKDIR /src
# Cache dependencies
COPY go.mod go.sum ./
RUN go mod download
# Copy source and build
COPY . .
RUN make build
# ============================================================
# Stage 2: Minimal runtime image
# ============================================================
FROM alpine:3.23
RUN apk add --no-cache \
ca-certificates \
tzdata \
curl \
jq \
git \
python3 \
py3-pip \
bash
# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget -q --spider http://localhost:18790/health || exit 1
# Copy binary
COPY --from=builder /src/build/picoclaw /usr/local/bin/picoclaw
# Create non-root user and group
RUN addgroup -g 1000 picoclaw && \
adduser -D -u 1000 -G picoclaw picoclaw
# Switch to non-root user
USER picoclaw
# Run onboard to create initial directories and config
RUN /usr/local/bin/picoclaw onboard
ENTRYPOINT ["picoclaw"]
CMD ["gateway"]