# Use official golang image as builder
FROM golang:1.24.2-alpine AS builder

# Set working directory
WORKDIR /app

# Copy go mod and sum files
COPY go.mod go.sum ./

# Download dependencies
RUN go mod download

# Copy source code
COPY . .

# Build the application
RUN CGO_ENABLED=0 GOOS=linux go build -o fabric

# Use scratch as final base image
FROM alpine:latest

# Copy the binary from builder
COPY --from=builder /app/fabric /fabric

# Copy patterns directory
COPY patterns /patterns

# Ensure clean config directory and copy ENV file
RUN rm -rf /root/.config/fabric && \
    mkdir -p /root/.config/fabric
COPY ENV /root/.config/fabric/.env

# Add debug commands
RUN ls -la /root/.config/fabric/

# Expose port 8080
EXPOSE 8080

# Run the binary with debug output
ENTRYPOINT ["/fabric"]
CMD ["--serve"] 
