No description
  • Shell 52.7%
  • Dockerfile 46.9%
  • Python 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Entrapta Jones 0c3f391da4
Some checks failed
kubectl / docker (v1.23.10) (push) Failing after 2m35s
kubectl / docker (v1.24.4) (push) Failing after 1h0m0s
feat(Images.KubeCTL): Work moving to our own Forgejo
2026-09-17 20:48:44 +00:00
.forgejo/workflows feat(Images.KubeCTL): Work moving to our own Forgejo 2026-09-17 20:48:44 +00:00
.github ci: Setup caching for more builds 2026-08-11 01:34:37 +00:00
Images feat(Images.KubeCTL): Work moving to our own Forgejo 2026-09-17 20:48:44 +00:00
.devfile.yaml ide: Work on getting pods grouped on the same node, increase RAM allocation and mess around with Eclipse Che some more 2026-08-12 18:04:49 +00:00
AGENTS.md docs: Improve what was meant to be replaced 2 years ago... oops. 2026-08-10 12:23:10 +00:00
README.md docs: Tidy up the repo, ensure Dockerhub images include the descriptions/README 2026-08-10 20:03:43 +00:00

Core Docker images

Core Docker is K-FOSS's collection of purpose-built container images for infrastructure, networking, observability, and MCP workloads. Each image has an independent build context under Images/; this repository is not a single application or a Docker Compose stack.

Images on the default branch are built by GitHub Actions and published to Docker Hub. Some directories are retained as experiments or historical build contexts and are not currently published by CI.

Published images

The main build workflow runs after pushes to main and twice daily at 05:30 and 17:30 UTC.

Build context Published image Platforms
Images/NetBox kristianfoss/netbox:core amd64, arm64
Images/UPNP kristianfjones/upnp:jobs amd64
Images/MCP/MCPHub kristianfjones/mcphub:latest amd64
Images/PGPool kristianfjones/pgpool:latest amd64
Images/Llama kristianfoss/llama:core amd64
Images/Docker kristianfoss/docker:core-mcp amd64, arm64
Images/MCP/NetworkTools kristianfoss/mcp-domaintools:core-mcp amd64, arm64
Images/MCP/Search kristianfoss/mcp-search:core-mcp amd64, arm64
Images/MCP/Docker kristianfoss/docker-mcp:testing amd64, arm64
Images/OpenWebUI kristianfoss/openwebui:core-mcp amd64, arm64
Images/Postfix kristianfoss/postfix:core amd64, arm64
Images/Kea kristianfjones/kea:vps1-core amd64
Images/PGExporter kristianfjones/pgexporter-docker:core0 amd64, arm64
Images/CoreDNS kristianfjones/coredns-docker:core0 amd64, arm64
Images/KeaAdmin kristianfjones/kea:vps1-admin amd64
Images/LDAP kristianfjones/library-openldap:latest amd64
Images/NetboxDHCP kristianfjones/netbox-dhcp:main amd64

The separate kubectl workflow builds Images/KubeCTL for amd64 and arm64. It currently publishes kristianfjones/kubectl:v1.24.4 and kristianfjones/kubectl:v1.23.10.

Other build contexts

The following directories contain Dockerfiles but their build steps are disabled or absent from the current workflows:

Treat these as experimental or historical until their build is restored and validated. A Dockerfile's presence alone does not mean its image is published.

Build an image locally

Run builds from the repository root and use the image directory as the build context:

docker build --pull --tag core-docker/kea:local Images/Kea

For a multi-platform validation that does not publish an image:

docker buildx build \
  --platform linux/amd64,linux/arm64 \
  --tag core-docker/netbox:local \
  Images/NetBox

Build arguments are image-specific. For example, the kubectl image accepts VERSION and receives TARGETARCH from BuildKit:

docker buildx build \
  --build-arg VERSION=v1.24.4 \
  --platform linux/amd64 \
  --tag core-docker/kubectl:local \
  Images/KubeCTL

Do not add --push to local validation commands unless you intend to publish to a registry and have verified the target tag.

Making changes

Keep changes scoped to one image unless a shared workflow change requires otherwise. When updating an image:

  1. Verify base-image and downloaded dependency versions against the authoritative upstream release and migration notes.
  2. Update the Dockerfile and any files copied from its build context together.
  3. Build every platform listed for that image in the workflow, or clearly record why a platform could not be tested.
  4. Exercise the container's entrypoint, version command, or health check where practical.
  5. Run git diff --check and review the final diff for credentials, mutable downloads, unintended files, and publishing changes.

There is no repository-wide test suite. A successful local image build and a focused runtime smoke test are the primary validation. GitHub Actions owns publishing; Docker Hub credentials are supplied through the DH_USER and DH_TOKEN repository secrets and must never be committed. After all active images in the daily workflow build successfully, the Kea and NetBox image READMEs are also published as their Docker Hub repository descriptions. Because Docker Hub descriptions belong to repositories rather than tags, Images/Kea/README.md describes the shared kristianfjones/kea repository, and the separately built vps1-admin tag cannot publish an independent Images/KeaAdmin/README.md overview.

See AGENTS.md for repository-specific guidance for coding agents and automated contributors.