This commit is contained in:
@@ -2,11 +2,18 @@ name: Docker Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
env:
|
||||
IMAGE_NAME: idrac-info
|
||||
REGISTRY: gitea.mouse84.com
|
||||
IMAGE_NAME: kim.kanghee/idrac-info
|
||||
DOCKERFILE: Dockerfile
|
||||
BUILD_CONTEXT: .
|
||||
|
||||
@@ -23,7 +30,10 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
SHORT_SHA="$(printf '%s' "${GITHUB_SHA:-local}" | cut -c1-12)"
|
||||
echo "IMAGE_TAG=${IMAGE_NAME}:${SHORT_SHA}" >> "${GITHUB_ENV}"
|
||||
IMAGE_REPO="${REGISTRY}/${IMAGE_NAME}"
|
||||
echo "IMAGE_REPO=${IMAGE_REPO}" >> "${GITHUB_ENV}"
|
||||
echo "IMAGE_TAG=${IMAGE_REPO}:${SHORT_SHA}" >> "${GITHUB_ENV}"
|
||||
echo "IMAGE_LATEST=${IMAGE_REPO}:latest" >> "${GITHUB_ENV}"
|
||||
echo "SHORT_SHA=${SHORT_SHA}" >> "${GITHUB_ENV}"
|
||||
|
||||
- name: Show Docker version
|
||||
@@ -43,10 +53,23 @@ jobs:
|
||||
--pull \
|
||||
--file "${DOCKERFILE}" \
|
||||
--tag "${IMAGE_TAG}" \
|
||||
--tag "${IMAGE_NAME}:ci" \
|
||||
--tag "${IMAGE_LATEST}" \
|
||||
"${BUILD_CONTEXT}"
|
||||
|
||||
- name: Inspect built image
|
||||
run: |
|
||||
docker image inspect "${IMAGE_TAG}" > /dev/null
|
||||
docker images "${IMAGE_NAME}"
|
||||
docker images "${IMAGE_REPO}"
|
||||
|
||||
- name: Login to Gitea Container Registry
|
||||
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main'
|
||||
run: |
|
||||
echo "${{ secrets.GITEA_TOKEN }}" | docker login "${REGISTRY}" \
|
||||
--username "${{ gitea.actor }}" \
|
||||
--password-stdin
|
||||
|
||||
- name: Push Docker image
|
||||
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main'
|
||||
run: |
|
||||
docker push "${IMAGE_TAG}"
|
||||
docker push "${IMAGE_LATEST}"
|
||||
|
||||
@@ -1,18 +1,39 @@
|
||||
# Docker Usage
|
||||
|
||||
Build and run the app with Docker Compose:
|
||||
The default compose file pulls the image from the Gitea Container Registry:
|
||||
|
||||
```powershell
|
||||
docker compose up --build
|
||||
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 idrac-info:local .
|
||||
docker build -t gitea.mouse84.com/kim.kanghee/idrac-info:local .
|
||||
```
|
||||
|
||||
Run the built image without Compose:
|
||||
Run the pulled image without Compose:
|
||||
|
||||
```powershell
|
||||
docker run --rm --network host `
|
||||
@@ -21,7 +42,7 @@ docker run --rm --network host `
|
||||
-e AUTO_BOOTSTRAP_DB=true `
|
||||
-v ${PWD}/data:/app/data `
|
||||
-v ${PWD}/backend/instance:/app/backend/instance `
|
||||
idrac-info:local
|
||||
gitea.mouse84.com/kim.kanghee/idrac-info:latest
|
||||
```
|
||||
|
||||
Open the app:
|
||||
@@ -42,7 +63,7 @@ process already uses `6050` on the host.
|
||||
Run in the background:
|
||||
|
||||
```powershell
|
||||
docker compose up --build -d
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Stop the container:
|
||||
@@ -75,7 +96,7 @@ The container defaults to port `6050`. To use a different host port:
|
||||
|
||||
```powershell
|
||||
$env:FLASK_PORT = "8080"
|
||||
docker compose up --build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Then open:
|
||||
@@ -117,7 +138,22 @@ 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"
|
||||
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
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
services:
|
||||
idrac-info:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: "${IDRAC_INFO_IMAGE:-gitea.mouse84.com/kim.kanghee/idrac-info:local}"
|
||||
+1
-4
@@ -1,9 +1,6 @@
|
||||
services:
|
||||
idrac-info:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: idrac-info:local
|
||||
image: "${IDRAC_INFO_IMAGE:-gitea.mouse84.com/kim.kanghee/idrac-info:latest}"
|
||||
container_name: idrac-info
|
||||
network_mode: "host"
|
||||
environment:
|
||||
|
||||
Reference in New Issue
Block a user