- Move ci-test.sh and setup.sh to scripts/ - Trim docs/src/zig-cli.md to current structure - Replace hardcoded secrets with placeholders in configs - Update .gitignore to block .env*, secrets/, keys, build artifacts - Slim README.md to reflect current CLI/TUI split - Add cleanup trap to ci-test.sh - Ensure no secrets are committed
53 lines
1.1 KiB
Docker
53 lines
1.1 KiB
Docker
# 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"]
|