feat(docker): add containerization for production deployment

- Added Dockerfile with multi-stage build (Go 1.25rc1-alpine)
- Added docker-compose.yml for easy deployment
- Added .dockerignore for efficient builds
- Bot now runs in Podman/Docker container as intended

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Gemini Agent
2025-11-29 12:30:40 -06:00
parent 9278404acb
commit d6d53205af
3 changed files with 116 additions and 0 deletions

38
Dockerfile Normal file
View File

@@ -0,0 +1,38 @@
# MEV Flash Loan Bot - Production Dockerfile
FROM golang:1.25rc1-alpine AS builder
# Install build dependencies
RUN apk add --no-cache git gcc musl-dev
WORKDIR /build
# Copy go mod files
COPY go.mod go.sum ./
RUN go mod download
# Copy source code
COPY . .
# Build the application
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o mev-flashloan cmd/mev-flashloan/main.go
# Final stage - minimal runtime image
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /app
# Copy binary from builder
COPY --from=builder /build/mev-flashloan .
# Create non-root user
RUN addgroup -S mevbot && adduser -S mevbot -G mevbot
USER mevbot
# Expose metrics port (optional)
EXPOSE 9090
# Run the bot
ENTRYPOINT ["./mev-flashloan"]
CMD ["--min-profit", "10"]