Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
2.0 kB · 71 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172# Development only. Not for production use.
FROM golang:1.26-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 -mod=mod -tags libsqlite3 -o /out/spindle ./cmd/spindle && \ go build -mod=mod -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}"
# executors read their mill token from a file seeded by the mill-tokens# service (command substitution strips the trailing newline)[ -z "${SPINDLE_MILL_SHARED_SECRET:-}" ] && [ -n "${SPINDLE_MILL_TOKEN_FILE:-}" ] && [ -r "${SPINDLE_MILL_TOKEN_FILE}" ] && \ export SPINDLE_MILL_SHARED_SECRET="$(cat "${SPINDLE_MILL_TOKEN_FILE}")"
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"]