Monorepo for Tangled
Something went wrong. Try again.
1.6 kB · 66 lines
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667# Development only. Not for production use.
FROM golang:1.25-alpine AS builder
RUN apk add --no-cache git build-base sqlite-dev
ENV CGO_ENABLED=1ENV GOCACHE=/go/cacheENV GOMODCACHE=/go/mod
WORKDIR /src
COPY go.mod go.sum ./RUN --mount=type=cache,target=/go/cache \ --mount=type=cache,target=/go/mod \ go mod download
COPY . .RUN --mount=type=cache,target=/go/cache \ --mount=type=cache,target=/go/mod \ go build -tags libsqlite3 -o /out/spindle ./cmd/spindle && \ go build -tags libsqlite3 -o /out/spindle-microvm-run ./cmd/spindle-microvm-run
FROM alpine:3.24
RUN apk add --no-cache \ bash \ ca-certificates \ e2fsprogs \ git \ iproute2 \ qemu-system-x86_64 \ shadow \ slirp4netns \ sqlite-libs \ tini \ util-linux
COPY --from=builder /out/spindle /usr/local/bin/spindleCOPY --from=builder /out/spindle-microvm-run /usr/local/bin/spindle-microvm-runRUN chmod 0755 /usr/local/bin/spindle /usr/local/bin/spindle-microvm-run
COPY <<'EOF' /usr/local/bin/spindle-entrypoint.sh#!/bin/shset -eu
[ -z "${SPINDLE_SERVER_OWNER:-}" ] && [ -r /shared/owner-did ] && \ export SPINDLE_SERVER_OWNER="$(cat /shared/owner-did)": "${SPINDLE_SERVER_OWNER:?set via env or /shared/owner-did}"
mkdir -p /var/lib/spindle /var/lib/spindle/overlays /var/log/spindle
if [ -f /usr/local/share/ca-certificates/caddy.crt ]; then update-ca-certificatesfi
exec /usr/local/bin/spindle runEOFRUN chmod +x /usr/local/bin/spindle-entrypoint.sh
VOLUME /var/lib/spindleEXPOSE 6555
ENTRYPOINT ["/sbin/tini", "--"]CMD ["/usr/local/bin/spindle-entrypoint.sh"]