# builder FROM golang:1.21.0-alpine AS builder WORKDIR /usr/src/app COPY go.mod go.sum ./ RUN go mod download && go mod verify COPY . . RUN --mount=type=cache,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=linux go build -v -o /tixe ./tixe.go # tester FROM builder AS tester RUN --mount=type=cache,target=/root/.cache/go-build go test -v ./... # release FROM alpine:3.18 AS release COPY --from=builder /tixe /tixe ADD ./static /static EXPOSE 8080 ENTRYPOINT ["/tixe"]