Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
1.8 kB · 46 lines
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647# Development only. Not for production use.
FROM docker.io/library/alpine:3.22 AS sourceRUN apk add --no-cache git patchWORKDIR /srcRUN git clone https://tangled.org/microcosm.blue/microcosm-rs . && \ git checkout 3137b07d5268812d2de0f3177664be92196994d8# the patch's context is pinned to that commit, so it fails loudly on a bumpCOPY localinfra/pocket.patch ./RUN patch -p1 < pocket.patch
FROM docker.io/library/rust:1.96-slim-trixie AS builderRUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates pkg-config perl make cmake clang mold git libssl-dev libsqlite3-dev \ && rm -rf /var/lib/apt/lists/*ENV RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=mold"WORKDIR /srcCOPY --from=source /src ./RUN cargo build --release --bin pocket --package pocketRUN strip target/release/pocket
FROM docker.io/library/debian:trixie-slimRUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates wget libssl3 libsqlite3-0 \ && rm -rf /var/lib/apt/lists/*WORKDIR /appCOPY --from=builder /src/target/release/pocket /usr/local/bin/pocket# StaticFileEndpoint::new("./static/index.html") resolves against the working directoryCOPY --from=builder /src/pocket/static /app/static
ENV POCKET_DB=/var/lib/pocket/prefs.sqlite3ENV POCKET_DOMAIN=pocket.tngl.boltless.dev
COPY <<'EOF' /usr/local/bin/pocket-entrypoint.sh#!/bin/shset -euif [ -f /usr/local/share/ca-certificates/caddy.crt ]; then update-ca-certificates; fimkdir -p "$(dirname "$POCKET_DB")"# Storage::init runs a bare `create table`, so it only succeeds on an empty db[ -f "$POCKET_DB" ] || pocket --init-db --db "$POCKET_DB"exec pocket --db "$POCKET_DB" --domain "$POCKET_DOMAIN"EOFRUN chmod +x /usr/local/bin/pocket-entrypoint.sh
EXPOSE 3000ENTRYPOINT ["/usr/local/bin/pocket-entrypoint.sh"]