# Docker Usage Build and run the app with Docker Compose: ```powershell docker compose up --build ``` Build only: ```powershell docker build -t idrac-info:local . ``` Run the built image without Compose: ```powershell docker run --rm --network host ` -e FLASK_PORT=6050 ` -e APP_DATA_DIR=/app/data ` -e AUTO_BOOTSTRAP_DB=true ` -v ${PWD}/data:/app/data ` -v ${PWD}/backend/instance:/app/backend/instance ` idrac-info:local ``` Open the app: ```text http://localhost:6050 ``` The compose service uses host networking: ```yaml network_mode: "host" ``` Because of that, `ports:` mappings are not used. Change `FLASK_PORT` if another process already uses `6050` on the host. Run in the background: ```powershell docker compose up --build -d ``` Stop the container: ```powershell docker compose down ``` View logs: ```powershell docker compose logs -f idrac-info ``` ## Persistent Data The compose file mounts local directories into the container: ```text ./data -> /app/data ./backend/instance -> /app/backend/instance ``` This preserves uploads, generated files, logs, backups, scripts, repositories, and the default SQLite database across container rebuilds. ## Environment The container defaults to port `6050`. To use a different host port: ```powershell $env:FLASK_PORT = "8080" docker compose up --build ``` Then open: ```text http://localhost:8080 ``` Common variables: ```text SECRET_KEY=change-me AUTO_BOOTSTRAP_DB=true REDFISH_VERIFY_SSL=false REDFISH_TIMEOUT=15 TELEGRAM_BOT_TOKEN= TELEGRAM_CHAT_ID= ``` ## Notes The image is based on Ubuntu 24.04 and installs Dell iDRAC Tools from the local `iDRACTools` directory during image build: ```text iDRACTools/racadm/UBUNTU24/x86_64/*.deb iDRACTools/ipmitool/UBUNTU24_x86_64/*.deb ``` `racadm` is expected on: ```text /opt/dell/srvadmin/sbin/racadm ``` The Dockerfile adds `/opt/dell/srvadmin/sbin` to `PATH`, so existing scripts can call `racadm` directly. After building, verify the tools inside the image: ```powershell docker run --rm idrac-info:local sh -lc "command -v racadm && command -v ipmitool && ipmitool -V" ``` Host networking works as expected on Linux Docker hosts. Docker Desktop on Windows can behave differently, so production deployment should use a Linux host or runner when direct access to the iDRAC network is required.