126 lines
2.3 KiB
Markdown
126 lines
2.3 KiB
Markdown
# 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.
|