Something went wrong. Try again.
Something went wrong. Try again.
1.9 kB · 68 lines
Dockerfile
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869# Build stageFROM rust:1-trixie AS builder
WORKDIR /app
# Pin nightly version for reproducibilityRUN rustup default nightly-2025-12-04 && rustup component add rust-src llvm-tools-preview --toolchain nightly-2025-12-04
# Install build dependenciesRUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ clang \ llvm \ binutils \ && rm -rf /var/lib/apt/lists/*
# Install wasm target and toolsRUN rustup target add wasm32-unknown-unknownRUN cargo install wasm-bindgen-cli
# Install dioxus-cliRUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bashRUN cargo binstall dioxus-cli --root /usr/local -y --force
# Copy source codeCOPY . .
# Use production env for build-time constantsRUN cp crates/weaver-app/.env-prod crates/weaver-app/.env
# Build wasm workersRUN RUSTFLAGS='--cfg getrandom_backend="wasm_js"' cargo build -p weaver-app --bin editor_worker --bin embed_worker \ --target wasm32-unknown-unknown --release \ --no-default-features --features "web","collab-worker","use-index"
# Run wasm-bindgen on workersRUN wasm-bindgen target/wasm32-unknown-unknown/release/editor_worker.wasm \ --out-dir crates/weaver-app/public \ --target no-modules \ --no-typescriptRUN wasm-bindgen target/wasm32-unknown-unknown/release/embed_worker.wasm \ --out-dir crates/weaver-app/public \ --target no-modules \ --no-typescript
# Bundle the appRUN dx bundle --verbose --release --debug-symbols false -p weaver-app
# Runtime stageFROM debian:trixie-slim
RUN apt-get update && apt-get install -y \ ca-certificates \ libssl3 \ && rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy the bundled appCOPY --from=builder /app/target/dx/weaver-app/release/web/ /app/
ENV PORT=8080ENV IP=0.0.0.0
EXPOSE 8080
ENTRYPOINT ["/app/weaver-app"]