Files
usda-vision/docker-compose.dev.yml
salirezav 98c93f9e0e Change video storage directory from /storage to /mnt/nfs_share
- Update StorageConfig default base_path in core/config.py
- Update base_path and camera storage_paths in config.json and config.compose.json
- Update Docker Compose volume mounts to use /mnt/nfs_share
- Update start_system.sh to create /mnt/nfs_share directory
- Update convert_avi_to_mp4.sh to use new NFS path
- Update all documentation files to reflect new storage paths
- Videos now stored on NFS server at 192.168.1.249:/mnt/nfs_share/
2025-10-14 16:28:00 -04:00

107 lines
3.2 KiB
YAML

services:
api:
build:
context: ./camera-management-api
dockerfile: Dockerfile
working_dir: /app
volumes:
- ./camera-management-api:/app
- /mnt/nfs_share:/mnt/nfs_share
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
- PYTHONUNBUFFERED=1
- LD_LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib
- PYTHONPATH=/app:/app/camera_sdk
- TZ=America/New_York
# Development-specific environment variables
- FLASK_ENV=development
- FLASK_DEBUG=1
- PYTHONDONTWRITEBYTECODE=1
command: >
sh -lc "
apt-get update && apt-get install -y libusb-1.0-0-dev;
# Install camera SDK if not already installed
if [ ! -f /lib/libMVSDK.so ] && [ -f 'camera_sdk/linuxSDK_V2.1.0.49(250108)/install.sh' ]; then
echo 'Installing camera SDK...';
cd 'camera_sdk/linuxSDK_V2.1.0.49(250108)';
chmod +x install.sh;
./install.sh;
cd /app;
echo 'Camera SDK installed successfully';
else
echo 'Camera SDK already installed or install script not found';
fi;
# Install Python dependencies
if [ -f requirements.txt ]; then
pip install --no-cache-dir -r requirements.txt;
else
pip install --no-cache-dir -e .;
fi;
# Start the application in development mode with verbose logging
echo 'Starting API in development mode...';
python main.py --config config.compose.json --debug --verbose
"
network_mode: host
# Keep container running for debugging
stdin_open: true
tty: true
# Add labels for easier identification
labels:
- "com.usda-vision.service=api"
- "com.usda-vision.environment=development"
web:
image: node:20-alpine
working_dir: /app
env_file:
- ./management-dashboard-web-app/.env
volumes:
- ./management-dashboard-web-app:/app
environment:
- CHOKIDAR_USEPOLLING=true
- TZ=America/New_York
# Development-specific environment variables
- NODE_ENV=development
- VITE_DEV_SERVER_HOST=0.0.0.0
- VITE_DEV_SERVER_PORT=8080
command: >
sh -lc "
echo 'Installing dependencies...';
npm ci;
echo 'Starting web development server...';
npm run dev -- --host 0.0.0.0 --port 8080 --verbose
"
# Ensure the web container can resolve host.docker.internal on Linux
extra_hosts:
- "host.docker.internal:host-gateway"
ports:
- "8080:8080"
# Keep container running for debugging
stdin_open: true
tty: true
# Add labels for easier identification
labels:
- "com.usda-vision.service=web"
- "com.usda-vision.environment=development"
# Optional: Add a development database if needed
# db:
# image: postgres:15-alpine
# environment:
# POSTGRES_DB: usda_vision_dev
# POSTGRES_USER: dev
# POSTGRES_PASSWORD: dev
# volumes:
# - postgres_dev_data:/var/lib/postgresql/data
# ports:
# - "5432:5432"
# labels:
# - "com.usda-vision.service=database"
# - "com.usda-vision.environment=development"
# volumes:
# postgres_dev_data: