Files
unknown 13fd61b571
Docker Build / Build Docker image (push) Successful in 7s
Bake data files into Docker image
2026-06-10 12:59:28 +09:00

3.2 KiB

Docker Usage

The default compose file pulls the image from the Gitea Container Registry:

docker compose pull
docker compose up -d

Default image:

gitea.mouse84.com/kim.kanghee/idrac-info:latest

Use a specific image tag:

$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:

docker compose -f docker-compose.yml -f docker-compose.build.yml up --build -d

Build only:

docker build -t gitea.mouse84.com/kim.kanghee/idrac-info:local .

Run the pulled image without Compose:

docker run --rm --network host `
  -e FLASK_PORT=6050 `
  -e APP_DATA_DIR=/app/data `
  -e AUTO_BOOTSTRAP_DB=true `
  -v ${PWD}/backend/instance:/app/backend/instance `
  gitea.mouse84.com/kim.kanghee/idrac-info:latest

Open the app:

http://localhost:6050

The compose service uses host networking:

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:

docker compose up -d

Stop the container:

docker compose down

View logs:

docker compose logs -f idrac-info

Persistent Data

The image includes the committed data directory, including scripts and server-list files, so the default compose file does not mount ./data over /app/data.

The compose file only mounts the Flask instance directory:

./backend/instance  -> /app/backend/instance

This preserves the default SQLite database and other instance files across container restarts.

Environment

The container defaults to port 6050. To use a different host port:

$env:FLASK_PORT = "8080"
docker compose up -d

Then open:

http://localhost:8080

Common variables:

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. It also copies the committed data directory into /app/data during image build:

iDRACTools/racadm/UBUNTU24/x86_64/*.deb
iDRACTools/ipmitool/UBUNTU24_x86_64/*.deb
data/ -> /app/data

racadm is expected on:

/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:

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:

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:

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.