customer/Dockerfile
Mikhail f9a7389870 Merge branch 'dev' into 'staging'
Update .gitlab-ci.yml file

See merge request pena-services/customer!38
2024-02-10 18:31:38 +03:00

56 lines
1.2 KiB
Docker

# BUILD
FROM golang:1.20.3-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 ./...
# TEST
FROM alpine:3.18.3 AS test
# Install packages
RUN apk --no-cache add ca-certificates
# Create home directory
WORKDIR /app
# Copy build file
COPY --from=build /app/bin/app ./app
# Copy migration dir
COPY --from=build /app/migrations/test ./migrations
# Install migrate tool
COPY --from=build /bin/golang-migrate /usr/local/bin
# CMD
CMD [ "./app" ]
# 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"]