diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9ab51ba --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.git +.gitignore +*.session +*.yaml +telegram-antiscam diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..36489d9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +# Build stage +FROM golang:1.23-alpine AS builder + +WORKDIR /build + +# Install build dependencies +RUN apk add --no-cache git + +# Copy go mod files +COPY go.mod go.sum ./ + +# Download dependencies +RUN go mod download + +# Copy source code +COPY . . + +# Build the binary +RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o telegram-antiscam . + +# Runtime stage +FROM alpine:latest + +WORKDIR /app + +# Install CA certificates for HTTPS +RUN apk add --no-cache ca-certificates + +# Copy binary from builder +COPY --from=builder /build/telegram-antiscam . + +# Set default config path +ENV CONFIG_PATH=/app/config.yaml + +# Run the bot +ENTRYPOINT ["/app/telegram-antiscam"] +CMD ["${CONFIG_PATH}"]