162 lines
3.1 KiB
Markdown
162 lines
3.1 KiB
Markdown
# Docker Usage
|
|
|
|
The default compose file pulls the image from the Gitea Container Registry:
|
|
|
|
```powershell
|
|
docker compose pull
|
|
docker compose up -d
|
|
```
|
|
|
|
Default image:
|
|
|
|
```text
|
|
gitea.mouse84.com/kim.kanghee/idrac-info:latest
|
|
```
|
|
|
|
Use a specific image tag:
|
|
|
|
```powershell
|
|
$env:IDRAC_INFO_IMAGE = "gitea.mouse84.com/kim.kanghee/idrac-info:<commit-sha>"
|
|
docker compose pull
|
|
docker compose up -d
|
|
```
|
|
|
|
Build locally instead of pulling:
|
|
|
|
```powershell
|
|
docker compose -f docker-compose.yml -f docker-compose.build.yml up --build -d
|
|
```
|
|
|
|
Build only:
|
|
|
|
```powershell
|
|
docker build -t gitea.mouse84.com/kim.kanghee/idrac-info:local .
|
|
```
|
|
|
|
Run the pulled 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 `
|
|
gitea.mouse84.com/kim.kanghee/idrac-info:latest
|
|
```
|
|
|
|
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 -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 -d
|
|
```
|
|
|
|
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 gitea.mouse84.com/kim.kanghee/idrac-info:latest sh -lc "command -v racadm && command -v ipmitool && ipmitool -V"
|
|
```
|
|
|
|
## Registry
|
|
|
|
Gitea Actions builds and pushes these tags on `main`:
|
|
|
|
```text
|
|
gitea.mouse84.com/kim.kanghee/idrac-info:latest
|
|
gitea.mouse84.com/kim.kanghee/idrac-info:<short-sha>
|
|
```
|
|
|
|
If the package is private, log in before pulling:
|
|
|
|
```powershell
|
|
docker login gitea.mouse84.com
|
|
```
|
|
|
|
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.
|