FROM golang:1.25.2-alpine3.22 AS builder

WORKDIR /app

COPY pkg/ ./pkg/
COPY service_a/go.mod service_a/go.sum ./service_a/
COPY service_a/server/ ./service_a/server/
COPY service_a/internal/ ./service_a/internal/
COPY service_a/assets/ ./service_a/assets/

WORKDIR /app/service_a

RUN go mod download

RUN go test ./... -v

RUN rm -rf ./assets/

RUN go build -o /app/bin/service_a ./server/main.go

FROM alpine:latest

WORKDIR /app

COPY --from=builder /app/bin/service_a /app/service_a

EXPOSE 8080

CMD ["/app/service_a"]
