# Stage 1: Build the binary
FROM golang:alpine AS builder
LABEL maintainer="Alex Stölting <alex-gomembership@gar-nich.net>"
# Set the Current Working Directory inside the container
WORKDIR /app

# Copy go mod and sum files
COPY go.mod go.sum ./

# Download all dependencies. Dependencies will be cached if the go.mod and go.sum files are not changed
RUN go mod download

# Copy the source code into the container
COPY . .
ENV CGO_ENABLED=1
RUN apk add --no-cache gcc musl-dev
# Build the Go app
RUN go build -o main ./cmd/membership
FROM golang:alpine

# Set the Current Working Directory inside the container
WORKDIR /root/

# Copy the Pre-built binary file from the builder stage
COPY --from=builder /app/main .

# Expose port 8080 to the outside world
EXPOSE 8080

# Command to run the executable
CMD ["./main"]

