Files
plainleaf/Dockerfile
T
Zef HemelandGitHub 91e76d0c78 Rust backend/CLI replacement (previously Go) (#2010)
* Rust backend: initial setup and space primitives implementation + tests

* Rust: initial basic server setup

* Rust server: auth layer

* Rust: added specific auth layers

* Rust: shell and proxy endpoints

* Rust: SSR and Prometheus metrics

* Rust: runtime API

* Rust: basic working silverbullet binary server

* Rust: fix client file caching

* Rust: in dev mode, update version number dynamically

* Rust: build-rs Makefile target

* Rust: auth and start of 'sb' CLI

* Rust: headless Chrome runtime runner

* Rust: basic e2e tests for Rust build

* Rust: docker builds

* Rust: forgot to commit silverbullet-bin code

* Rust: cross compile and chrome driver fixes

* Rust: waiting for ready status fixes

* Rust: sb-CLI port

* Rust: use native build toolchain

* Rust: fix build chain

* Rust: edge release builds

* Rust: FreeBSD and armv7 builds

* Rust: edge-upgrade from edge-rust release

* Rust: fix FreeBSD build

* Rust: fix FreeBSD build

* Rust: get rid of Go code

* refactor: rename library crates to server- prefix convention

* Rust: refactoring, moving crypto around

* Rust: more refactoring

* Runtime: internal renaming

* Fix: cursor placement after paste on Webkit browsers

* Tweak how version numbers are generated and consumed

* Cleanup CI situation

* Fix CI

* Fix e2e

* ci: website image uses :edge channel (was :v2) post-merge

* Rust: restore manifest.json endpoint

* Rust: ready to merge
2026-06-16 08:40:41 +02:00

33 lines
1.2 KiB
Docker

# Base Alpine image for the SilverBullet server.
# Copies a PRE-CROSS-COMPILED, statically-linked musl binary built on the CI
# runner via native `cargo build --target` + installed musl cross-toolchains
# (see .github/workflows/ci.yml). Because there is no in-image compilation,
# multi-arch `buildx` is fast (it only emulates the small Alpine layers). The
# binary is static, so it runs on bare Alpine.
#
# This is the BASE variant: no Chromium, so `/.runtime/*` returns 503.
# `Dockerfile.runtime-api` layers Chromium on top to enable the runtime API.
#
# Published by `.github/workflows/ci.yml`.
FROM alpine:latest
# `buildx` sets TARGETARCH to `amd64` / `arm64`; pick the matching pre-built
# binary (silverbullet-amd64 / silverbullet-arm64, built on the CI runner).
ARG TARGETARCH
RUN apk add --no-cache git curl bash tini
ENV SB_HOSTNAME=0.0.0.0 \
SB_FOLDER=/space \
SB_PORT=3000
EXPOSE 3000
HEALTHCHECK CMD curl --fail "http://localhost:$SB_PORT$SB_URL_PREFIX/.ping" || exit 1
COPY silverbullet-${TARGETARCH} /silverbullet
RUN chmod +x /silverbullet
# Extra args (e.g. `--user me:letmein`) are appended to the binary invocation.
ENTRYPOINT ["/sbin/tini", "--", "/silverbullet"]