| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # Use build arguments for Go version and architecture
- ARG GO_VERSION=1.23.2
- ARG BUILDARCH
- # Stage 1: Build the Go application with swag
- FROM golang:${GO_VERSION} AS builder
- # Set up working directory
- WORKDIR /app
- # Install dependencies and copy the source code
- COPY go.mod ./
- RUN go install github.com/swaggo/swag/cmd/swag@latest
- RUN go mod download
- COPY . .
- #run the build script
- RUN chmod +x build.sh && ./build.sh
- # Stage 2: Prepare the final image
- FROM alpine:latest
- # Set up working directory
- WORKDIR /app
- # Install necessary dependencies
- RUN apk add --no-cache tzdata file
- # Copy the built application from the builder stage
- COPY --from=builder /app/release /app/
- # Ensure the binary is correctly built
- RUN file /app/apimain
- # Set up a volume for persistent data
- VOLUME /app/data
- # Expose the necessary port
- EXPOSE 21114
- # Define the command to run the application
- CMD ["app/apimain"]
|