feat: add sqlite3 CLI + jq for manual user mappings
This commit is contained in:
+1
-52
@@ -1,52 +1 @@
|
|||||||
# Build stage
|
IyBCdWlsZCBzdGFnZQpGUk9NIGdvbGFuZzoxLjI0LWFscGluZSBBUyBidWlsZGVyCgojIEluc3RhbGwgYnVpbGQgZGVwZW5kZW5jaWVzClJVTiBhcGsgYWRkIC0tbm8tY2FjaGUgZ2NjIG11c2wtZGV2IHNxbGl0ZS1kZXYKCldPUktESVIgL2FwcAoKIyBDb3B5IGdvIG1vZCBmaWxlcwpDT1BZIGdvLm1vZCBnby5zdW0gLi8KUlVOIGdvIG1vZCBkb3dubG9hZAoKIyBDb3B5IHNvdXJjZSBjb2RlCkNPUFkgLiAuCgojIEJ1aWxkIHdpdGggQ0dPIGZvciBTUUxpdGUKRU5WIENHT19FTkFCTEVEPTEKUlVOIGdvIGJ1aWxkIC1sZGZsYWdzPSItcyAtdyIgLW8gL2dpdGVhLW5vdGlmaWNhdGlvbi1odWIgLi9jbWQvc2VydmVyCgojIFJ1bnRpbWUgc3RhZ2UKRlJPTSBhbHBpbmU6My4xOQoKIyBJbnN0YWxsIHJ1bnRpbWUgZGVwZW5kZW5jaWVzIChzcWxpdGUgQ0xJICsganEgZm9yIG1hbnVhbCBtYXBwaW5ncykKUlVOIGFwayBhZGQgLS1uby1jYWNoZSBjYS1jZXJ0aWZpY2F0ZXMgc3FsaXRlLWxpYnMgdHpkYXRhIHNxbGl0ZSBqcQoKIyBDcmVhdGUgbm9uLXJvb3QgdXNlcgpSVU4gYWRkdXNlciAtRCAtZyAnJyBhcHB1c2VyCgpXT1JLRElSIC9hcHAKCiMgQ29weSBiaW5hcnkgZnJvbSBidWlsZGVyCkNPUFkgLS1mcm9tPWJ1aWxkZXIgL2dpdGVhLW5vdGlmaWNhdGlvbi1odWIgLgoKIyBDb3B5IGVudHJ5cG9pbnQgc2NyaXB0CkNPUFkgZG9ja2VyLWVudHJ5cG9pbnQuc2ggLgpSVU4gY2htb2QgK3ggZG9ja2VyLWVudHJ5cG9pbnQuc2gKCiMgQ3JlYXRlIGRhdGEgZGlyZWN0b3J5ClJVTiBta2RpciAtcCAvYXBwL2RhdGEgJiYgY2hvd24gLVIgYXBwdXNlcjphcHB1c2VyIC9hcHAKCiMgU3dpdGNoIHRvIG5vbi1yb290IHVzZXIKVVNFUiBhcHB1c2VyCgojIEV4cG9zZSBwb3J0CkVYUE9TRSA4MDgwCgojIEhlYWx0aCBjaGVjawpIRUFMVEhDSEVDSyAtLWludGVydmFsPTMwcyAtLXRpbWVvdXQ9M3MgLS1zdGFydC1wZXJpb2Q9NXMgLS1yZXRyaWVzPTMgXAogICAgQ01EIHdnZXQgLS1uby12ZXJib3NlIC0tdHJpZXM9MSAtLXNwaWRlciBodHRwOi8vbG9jYWxob3N0OjgwODAvaGVhbHRoIHx8IGV4aXQgMQoKIyBSdW4KRU5UUllQT0lOVCBbIi9iaW4vc2giLCAiLi9kb2NrZXItZW50cnlwb2ludC5zaCJdCg==
|
||||||
FROM golang:1.24-alpine AS builder
|
|
||||||
|
|
||||||
# Install build dependencies
|
|
||||||
RUN apk add --no-cache gcc musl-dev sqlite-dev
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy go mod files
|
|
||||||
COPY go.mod go.sum ./
|
|
||||||
RUN go mod download
|
|
||||||
|
|
||||||
# Copy source code
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
# Build with CGO for SQLite
|
|
||||||
ENV CGO_ENABLED=1
|
|
||||||
RUN go build -ldflags="-s -w" -o /gitea-notification-hub ./cmd/server
|
|
||||||
|
|
||||||
# Runtime stage
|
|
||||||
FROM alpine:3.19
|
|
||||||
|
|
||||||
# Install runtime dependencies
|
|
||||||
RUN apk add --no-cache ca-certificates sqlite-libs tzdata
|
|
||||||
|
|
||||||
# Create non-root user
|
|
||||||
RUN adduser -D -g '' appuser
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy binary from builder
|
|
||||||
COPY --from=builder /gitea-notification-hub .
|
|
||||||
|
|
||||||
# Copy entrypoint script
|
|
||||||
COPY docker-entrypoint.sh .
|
|
||||||
RUN chmod +x docker-entrypoint.sh
|
|
||||||
|
|
||||||
# Create data directory
|
|
||||||
RUN mkdir -p /app/data && chown -R appuser:appuser /app
|
|
||||||
|
|
||||||
# Switch to non-root user
|
|
||||||
USER appuser
|
|
||||||
|
|
||||||
# Expose port
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
# Health check
|
|
||||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
||||||
CMD wget --no-verbose --tries=1 --spider http://localhost:8080/health || exit 1
|
|
||||||
|
|
||||||
# Run
|
|
||||||
ENTRYPOINT ["/bin/sh", "./docker-entrypoint.sh"]
|
|
||||||
Reference in New Issue
Block a user