The GHCR image runs the Ask Discord assistant as the unprivileged node user. The repository maintainers own the image build inputs. The publish workflow runs on ubuntu-latest and leaves the build platform unset, so Docker uses the runner default. It pushes a version tag and records an image digest. Publication does not deploy the bot.
- Set the required values in an untracked
.envfile. - Run
docker compose up -d --buildfrom the repository root. - Run
docker compose logs -f askto view container logs. - Run
docker compose downto stop and remove the container.
The Compose entry builds the local Dockerfile and starts again unless stopped. Docker checks /ready inside the container. Compose keeps the health port private. Direct runs use 127.0.0.1 by default.
Set HEALTH_HOST=0.0.0.0 for a Kubernetes deployment that uses HTTP probes. Kubernetes probes connect to the Pod IP, so the health server must listen on an address that accepts connections from outside the container loopback interface. Keep HEALTH_HOST unset for local runs.
Use GET /health to check that the process responds. Use GET /ready to check the Discord client status. The endpoint returns 503 until the client emits clientReady, then returns 200. Both endpoints listen on port 3000 inside the container.
The image is published to ghcr.io/eliware/ask. Package settings determine who can pull it. Use a version tag for an approved release, or use the immutable digest recorded by the publish workflow.
- Set the required values in an untracked
.envfile or deployment secret store. - When an approved version tag is available, replace
<version>with that tag and pull the image withdocker pull ghcr.io/eliware/ask:<version>. - Run the selected image with
docker run --env-file .env ghcr.io/eliware/ask:<version>.
For a deployment, replace the example version with an approved release tag. Record the SHA-256 digest and deploy by digest when the platform supports it. Publication does not grant deployment approval.
The GHCR workflow starts on version tags that match vMAJOR.MINOR.PATCH. It checks the package version, publishes the image, verifies its digest, and records the digest in the workflow summary.
Send a stop signal to the container or run docker compose down. Ask closes its Discord client during shutdown.