Includes prior-session patches (carry forward so the app compiles): - crates/gpui/build.rs: cross-compile manifest fix - crates/gpui/src/platform.rs: PlatformWindow::activate_with_token trait method - crates/gpui/src/window.rs: Window::activate_with_token public API - crates/gpui_linux/src/linux/wayland/window.rs: WaylandWindow::activate_with_token + activate() keyboard-serial fix Plus the focus-serial fix: - serial.rs: SerialKind::KeyboardEnter - client.rs: store wl_keyboard.enter serial; latest_serial_of() Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
42 lines
1.2 KiB
Plaintext
42 lines
1.2 KiB
Plaintext
# syntax = docker/dockerfile:1.2
|
|
|
|
FROM rust:1.94-bookworm as builder
|
|
WORKDIR app
|
|
COPY . .
|
|
|
|
# Replace the Cargo configuration with the one used by collab.
|
|
COPY ./.cargo/collab-config.toml ./.cargo/config.toml
|
|
|
|
# Compile collab server
|
|
ARG CARGO_PROFILE_RELEASE_PANIC=abort
|
|
ARG GITHUB_SHA
|
|
|
|
ENV GITHUB_SHA=$GITHUB_SHA
|
|
|
|
# Also add `cmake`, since we need it to build `wasmtime`.
|
|
# clang is needed because `webrtc-sys` uses Clang-specific compiler flags.
|
|
RUN apt-get update; \
|
|
apt-get install -y --no-install-recommends cmake clang
|
|
|
|
ENV CC=clang
|
|
ENV CXX=clang++
|
|
|
|
RUN --mount=type=cache,target=./script/node_modules \
|
|
--mount=type=cache,target=/usr/local/cargo/registry \
|
|
--mount=type=cache,target=/usr/local/cargo/git \
|
|
--mount=type=cache,target=./target \
|
|
cargo build --release --package collab --bin collab
|
|
|
|
# Copy collab server binary out of cached directory
|
|
RUN --mount=type=cache,target=./target \
|
|
cp /app/target/release/collab /app/collab
|
|
|
|
# Copy collab server binary to the runtime image
|
|
FROM debian:bookworm-slim as runtime
|
|
RUN apt-get update; \
|
|
apt-get install -y --no-install-recommends libcurl4-openssl-dev ca-certificates \
|
|
linux-perf binutils
|
|
WORKDIR app
|
|
COPY --from=builder /app/collab /app/collab
|
|
ENTRYPOINT ["/app/collab"]
|