This commit is contained in:
Jabberwocky238
2026-07-15 11:06:48 -04:00
commit c746f88bbe
69 changed files with 14975 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
# syntax=docker/dockerfile:1
#
# simplegit — git hosting (SSH + HTTP) + management API (SQLite, CGO).
#
# Runtime: simplegit shells out to system `git` (git http-backend,
# receive-pack, ...), so the runtime image installs git. Identity + JWT signing
# are absorbed into simplegit (no separate simpleauth service / sibling module),
# so the build context only needs this module.
#
# Web console is NOT bundled.
# docker build -f pkgs/simplegit/Dockerfile -t gasoline/simplegit:latest pkgs/
FROM golang:1.26 AS build
ENV CGO_ENABLED=1 GOFLAGS=-trimpath \
GOPROXY=https://goproxy.cn,direct GOSUMDB=off
WORKDIR /src
# Copy the module manifest first so `go mod download` is cacheable.
COPY simplegit/go.mod simplegit/go.sum ./simplegit/
WORKDIR /src/simplegit
RUN go mod download
COPY simplegit/ ./simplegit/
RUN go build -o /out/simplegit ./cmd
FROM debian:bookworm-slim
# git is a hard runtime dependency (simplegit execs git for all repo ops).
RUN apt-get update \
&& apt-get install -y --no-install-recommends git ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /out/simplegit /app/simplegit
EXPOSE 8080 2222
ENTRYPOINT ["/app/simplegit"]
# Identity/JWT are verified in-process; no -auth-url. The Ed25519 signing key
# is auto-created under <root>/signing.key if absent.
CMD ["-ssh", ":2222", "-http", ":8080", "-root", "/data"]