discount/Dockerfile
skeris 7a16318de2
All checks were successful
Deploy / CreateImage (push) Successful in 2m20s
Deploy / DeployService (push) Successful in 1m11s
fix deployment staging compose
2024-12-12 23:43:34 +03:00

57 lines
1.3 KiB
Docker

# BUILD
FROM gitea.pena/penadevops/container-images/golang:main AS build
# Update packages and clear cache
RUN apk update && apk add --no-cache curl && rm -rf /var/cache/apk/*
RUN apk add git
# Set work directory
WORKDIR /app
# 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 . .
# Download go depences
RUN go mod download
# Build app
RUN GOOS=linux go build -o bin ./...
# TEST
FROM gitea.pena/penadevops/container-images/alpine:main AS test
# Install packages
RUN apk --no-cache add ca-certificates && rm -rf /var/cache/apk/*
# Set GO111MODULE env
ENV GO111MODULE=off
# 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 gitea.pena/penadevops/container-images/alpine:main AS production
# Install packages
RUN apk --no-cache add ca-certificates && rm -rf /var/cache/apk/*
# 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"]