diff --git a/docker/Dockerfile b/docker/Dockerfile index 51974b5..ace2c26 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -17,13 +17,10 @@ COPY crates/quicproquo-proto/Cargo.toml crates/quicproquo-proto/Cargo.toml COPY crates/quicproquo-server/Cargo.toml crates/quicproquo-server/Cargo.toml COPY crates/quicproquo-client/Cargo.toml crates/quicproquo-client/Cargo.toml COPY crates/quicproquo-p2p/Cargo.toml crates/quicproquo-p2p/Cargo.toml -COPY crates/quicproquo-bot/Cargo.toml crates/quicproquo-bot/Cargo.toml -COPY crates/quicproquo-gen/Cargo.toml crates/quicproquo-gen/Cargo.toml COPY crates/quicproquo-kt/Cargo.toml crates/quicproquo-kt/Cargo.toml COPY crates/quicproquo-plugin-api/Cargo.toml crates/quicproquo-plugin-api/Cargo.toml -COPY crates/quicproquo-gui/Cargo.toml crates/quicproquo-gui/Cargo.toml -COPY crates/quicproquo-mobile/Cargo.toml crates/quicproquo-mobile/Cargo.toml -COPY crates/quicproquo-ffi/Cargo.toml crates/quicproquo-ffi/Cargo.toml +COPY crates/quicproquo-rpc/Cargo.toml crates/quicproquo-rpc/Cargo.toml +COPY crates/quicproquo-sdk/Cargo.toml crates/quicproquo-sdk/Cargo.toml # Create dummy source files so `cargo build` can resolve the dependency graph # and cache the compiled dependencies before copying real source. @@ -33,25 +30,19 @@ RUN mkdir -p \ crates/quicproquo-server/src \ crates/quicproquo-client/src \ crates/quicproquo-p2p/src \ - crates/quicproquo-bot/src \ - crates/quicproquo-gen/src \ crates/quicproquo-kt/src \ crates/quicproquo-plugin-api/src \ - crates/quicproquo-gui/src \ - crates/quicproquo-mobile/src \ - crates/quicproquo-ffi/src \ + crates/quicproquo-rpc/src \ + crates/quicproquo-sdk/src \ && echo 'fn main() {}' > crates/quicproquo-server/src/main.rs \ && echo 'fn main() {}' > crates/quicproquo-client/src/main.rs \ - && echo 'fn main() {}' > crates/quicproquo-gen/src/main.rs \ - && echo 'fn main() {}' > crates/quicproquo-bot/src/main.rs \ && touch crates/quicproquo-core/src/lib.rs \ && touch crates/quicproquo-proto/src/lib.rs \ && touch crates/quicproquo-p2p/src/lib.rs \ && touch crates/quicproquo-kt/src/lib.rs \ && touch crates/quicproquo-plugin-api/src/lib.rs \ - && touch crates/quicproquo-gui/src/lib.rs \ - && touch crates/quicproquo-mobile/src/lib.rs \ - && touch crates/quicproquo-ffi/src/lib.rs + && touch crates/quicproquo-rpc/src/lib.rs \ + && touch crates/quicproquo-sdk/src/lib.rs # Schemas must exist before the proto crate's build.rs runs. COPY schemas/ schemas/ @@ -69,6 +60,8 @@ RUN touch \ crates/quicproquo-p2p/src/lib.rs \ crates/quicproquo-kt/src/lib.rs \ crates/quicproquo-plugin-api/src/lib.rs \ + crates/quicproquo-rpc/src/lib.rs \ + crates/quicproquo-sdk/src/lib.rs \ crates/quicproquo-server/src/main.rs \ crates/quicproquo-client/src/main.rs @@ -95,11 +88,17 @@ RUN groupadd --system qpq \ EXPOSE 7000 +# Persistent data volume: TLS certs, SQLCipher DB, delivery queues, KT log. +# Mount a named volume or host path here for data persistence across restarts: +# docker run -v qpq-data:/var/lib/quicproquo ... +VOLUME ["/var/lib/quicproquo"] + ENV RUST_LOG=info \ QPQ_LISTEN=0.0.0.0:7000 \ QPQ_DATA_DIR=/var/lib/quicproquo \ QPQ_TLS_CERT=/var/lib/quicproquo/server-cert.der \ - QPQ_TLS_KEY=/var/lib/quicproquo/server-key.der + QPQ_TLS_KEY=/var/lib/quicproquo/server-key.der \ + QPQ_PRODUCTION=true HEALTHCHECK --interval=30s --timeout=5s --retries=3 \ CMD test -f /var/lib/quicproquo/server-cert.der || exit 1