# syntax=docker/dockerfile:1
FROM golang:1.17-alpine as scratch

FROM scratch as base
RUN apk add build-base
WORKDIR /app

FROM base as deps

COPY go.mod ./
COPY go.sum ./
RUN go mod download

FROM deps as tests

COPY . .

CMD ["go", "test", "./..."]

FROM deps as build

COPY . .

RUN go build -ldflags "-s -w" -o dist


FROM deps as dev

RUN go get -u github.com/gofiber/cli/fiber

COPY . .

CMD fiber dev D


FROM scratch as prod

WORKDIR /app

COPY --from=build /app/dist .

CMD ["./dist"]