FROM golang:latest AS builder WORKDIR /build # Copy shared module first COPY shared/ ./shared/ # Copy watcher module COPY watcher/ ./watcher/ # Build the binary WORKDIR /build/watcher RUN go mod download RUN CGO_ENABLED=0 go build -o watcher . # Runtime stage FROM ubuntu:latest WORKDIR /app # Install runtime dependencies RUN apt-get update && apt-get install -y ca-certificates tzdata curl wget && rm -rf /var/lib/apt/lists/* # Copy binary from builder COPY --from=builder /build/watcher/watcher . # Copy static files COPY --from=builder /build/watcher/static ./static EXPOSE 4321 CMD ["./watcher"]