services: node: labels: app: spacetimedb build: context: ./ dockerfile: ./crates/standalone/Dockerfile args: CARGO_PROFILE: dev volumes: - ./crates/standalone:/usr/src/app/crates/standalone - ./crates/core:/usr/src/app/crates/core - ./crates/client-api:/usr/src/app/crates/client-api - ./crates/lib:/usr/src/app/crates/lib - ./crates/sats:/usr/src/app/crates/sats - ./crates/bindings:/usr/src/app/crates/bindings - ./crates/bindings-macro:/usr/src/app/crates/bindings-macro - ./crates/bindings-sys:/usr/src/app/crates/bindings-sys - ./crates/metrics:/usr/src/app/crates/metrics - ./crates/client-api-messages:/usr/src/app/crates/client-api-messages - ./Cargo.toml:/usr/src/app/Cargo.toml - ./flamegraphs:/usr/src/app/flamegraphs - key_files:/etc/spacetimedb - /stdb ports: - "3000:3000" # Postgres - "5432:5432" # Tracy - "8086:8086" entrypoint: cargo watch -i flamegraphs -i log.conf --why -C crates/standalone -x 'run start --data-dir=/stdb/data --jwt-pub-key-path=/etc/spacetimedb/id_ecdsa.pub --jwt-priv-key-path=/etc/spacetimedb/id_ecdsa --pg-port 5432' privileged: true environment: SPACETIMEDB_FLAMEGRAPH_PATH: ../../../../flamegraphs/flamegraph.folded SPACETIMEDB_TRACY: 1 # Tracy utilizes the Time Stamp Counter (TSC) in CPUs for high-resolution timing. # The invariant TSC is a feature that ensures the TSC runs at a constant rate, # regardless of power-saving modes or frequency changes. # # This flag will instruct Tracy to proceed without verifying the presence of an invariant TSC. # If the CPU lacks this feature, Tracy cannot guarantee accurate timing. # So use this approach with caution, as it may affect profiling accuracy. # TRACY_NO_INVARIANT_CHECK: 1 RUST_BACKTRACE: 1 ENV: dev networks: - spacetimedb_default networks: spacetimedb_default: name: spacetimedb_default volumes: key_files: