# Test Dockerfile - Go components only FROM golang:1.25-alpine AS builder # Install dependencies RUN apk add --no-cache git # Set working directory WORKDIR /app # Copy go mod files COPY go.mod go.sum ./ # Download dependencies RUN go mod download # Copy source code COPY . . # Build only Go binaries (skip Zig) RUN go build -o bin/api-server cmd/api-server/main.go && \ go build -o bin/worker cmd/worker/worker_server.go cmd/worker/worker_config.go && \ go build -o bin/tui ./cmd/tui # Final stage FROM alpine:3.19 # Install runtime dependencies RUN apk add --no-cache ca-certificates curl # Create app user RUN addgroup -g 1001 -S appgroup && \ adduser -u 1001 -S appuser -G appgroup # Set working directory WORKDIR /app # Copy binaries from builder COPY --from=builder /app/bin/ /usr/local/bin/ # Copy configs COPY --from=builder /app/configs/ /app/configs/ # Create necessary directories RUN mkdir -p /app/data/experiments /app/logs # Switch to app user USER appuser # Expose ports EXPOSE 9101 # Default command CMD ["/usr/local/bin/api-server", "-config", "/app/configs/environments/config-local.yaml"]