From a6fa82bf502f52e38c666f7b8c97ec1da1d085d9 Mon Sep 17 00:00:00 2001 From: lafay <2021211506@stu.hit.edu.cn> Date: Tue, 17 Mar 2026 19:39:44 +0800 Subject: [PATCH] feat: Add CD workflow and Makefile - Add deploy.yml for SSH-based deployment (only triggers on PR merge or master/main) - Add Makefile for local build commands - Add optimized Dockerfile (multi-stage build) --- Dockerfile.new | 52 -------------------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 Dockerfile.new diff --git a/Dockerfile.new b/Dockerfile.new deleted file mode 100644 index 0e45ba7..0000000 --- a/Dockerfile.new +++ /dev/null @@ -1,52 +0,0 @@ -# Build stage -FROM golang:1.22-alpine AS builder - -WORKDIR /build - -# Install dependencies -RUN apk add --no-cache git ca-certificates tzdata - -# Copy go mod files -COPY go.mod go.sum ./ -RUN go mod download - -# Copy source code -COPY . . - -# Build binary -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o server ./cmd/server - -# Runtime stage -FROM debian:bookworm-slim - -# Install runtime dependencies -RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates \ - tzdata \ - && rm -rf /var/lib/apt/lists/* \ - && apt-get clean - -# Create non-root user -RUN groupadd -r app && useradd -r -g app app - -WORKDIR /app - -# Copy binary from builder -COPY --from=builder /build/server ./carrot_bbs -COPY --from=builder /build/configs ./configs - -# Set ownership -RUN chown -R app:app /app - -# Switch to non-root user -USER app - -# Expose ports -EXPOSE 8080 50051 - -# Health check -HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ - CMD curl -f http://localhost:8080/health || exit 1 - -# Run the binary -CMD ["./carrot_bbs"]