diff --git a/Dockerfile b/Dockerfile index 436a1d5..6294714 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,19 +5,36 @@ FROM golang:alpine3.19 AS builder WORKDIR /app # Copy the source code into the container -COPY . . +COPY go.mod . +COPY go.sum . + +# Download required modules RUN go mod download +# Copy the main application file +COPY main.go . + # Build the application -RUN CGO_ENABLED=0 GOOS=linux go build -o mybot . +RUN CGO_ENABLED=0 GOOS=linux go build -o gitea-register-account-bot . # Use a small base image FROM alpine:edge +# Create and set the application directory WORKDIR /app/ +# Add a non-root user to run the application +RUN addgroup -S nonroot \ + && adduser -S nonroot -G nonroot + # Copy the binary from the builder stage -COPY --from=builder /app/mybot /app/ +COPY --from=builder /app/gitea-register-account-bot /app/ + +# Change file ownership to the nonroot user +RUN chown -R nonroot:nonroot /app + +# Change to nonroot user +USER nonroot # Command to run the executable -CMD ["./mybot"] +CMD ["./gitea-register-account-bot"]