FROM golang:1.25.2-alpine3.22 AS builder

WORKDIR /app

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

RUN go mod download

RUN go test ./... -v

RUN rm -rf ./assets/

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

FROM alpine:latest

WORKDIR /app

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

EXPOSE 8080

CMD ["/app/service_a"]
