# BUILD FROM golang:1.22.0-alpine AS build # Update packages and clear cache RUN apk add --no-cache curl # Set work directory WORKDIR /app RUN apk add git # Create binary directory RUN mkdir /app/bin -p # Create golang migrate util directory RUN mkdir /bin/golang-migrate -p # Add migrate tool ADD ./tools/migrate /bin/golang-migrate/ # Add main files to app ADD . . RUN git config --global url."https://buildToken:glpat-axA8ttckx3aPf_xd2Dym@penahub.gitlab.yandexcloud.net/".insteadOf "https://penahub.gitlab.yandexcloud.net/" # Download go depences RUN go mod download # Build app RUN GOOS=linux go build -o bin ./... # PRODUCTION FROM alpine:3.18.3 AS production # Install packages RUN apk --no-cache add ca-certificates # Create home directory WORKDIR /app # Copy build file COPY --from=build /app/bin/app ./app # Install migrate tool COPY --from=build /bin/golang-migrate /usr/local/bin # CMD CMD ["./app"]