Files
optimiz-rs/docker-compose.yml
T

83 lines
1.9 KiB
YAML
Raw Permalink Normal View History

version: '3.8'
services:
# Development environment with Jupyter
dev:
build:
context: .
dockerfile: Dockerfile
container_name: optimizr-dev
volumes:
- .:/workspace
- cargo-cache:/root/.cargo/registry
- target-cache:/workspace/target
ports:
- "8889:8888" # Jupyter (host:8889 -> container:8888)
environment:
- RUST_BACKTRACE=1
- PYTHONUNBUFFERED=1
command: jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root --NotebookApp.token='' --NotebookApp.password=''
stdin_open: true
tty: true
# Testing environment
test:
build:
context: .
dockerfile: Dockerfile
container_name: optimizr-test
volumes:
- .:/workspace
- cargo-cache:/root/.cargo/registry
- target-cache:/workspace/target
environment:
- RUST_BACKTRACE=1
- PYTHONUNBUFFERED=1
command: >
sh -c "
echo '=== Running Rust tests ===' &&
cargo test --release &&
echo '=== Running Python tests ===' &&
pytest tests/ -v --tb=short
"
# Build wheels for distribution
build:
build:
context: .
dockerfile: Dockerfile
container_name: optimizr-build
volumes:
- .:/workspace
- ./dist:/workspace/dist
- cargo-cache:/root/.cargo/registry
- target-cache:/workspace/target
environment:
- RUST_BACKTRACE=1
command: maturin build --release --out dist
# Documentation generator
docs:
build:
context: .
dockerfile: Dockerfile
container_name: optimizr-docs
volumes:
- .:/workspace
- ./docs:/workspace/docs
ports:
- "8000:8000"
command: >
sh -c "
pip install --no-cache-dir mkdocs mkdocs-material &&
mkdocs serve --dev-addr=0.0.0.0:8000
"
volumes:
cargo-cache:
target-cache:
networks:
default:
name: optimizr-network