FedWiki OCI Image

This repository contains a Containerfile and related scripts to build a FedWiki OCI image.

Tagging Convention

We tag images based on the version of the wiki package included in the image and a revision number for changes to the image itself.

The tag format is X.Y.Z-R, where:

  • X.Y.Z is the version of the wiki package (e.g., 0.38.0).
  • R is a revision number for changes to the image (e.g., 1, 2, etc.).

Increment the revision number R if the wiki package version X.Y.Z remains the same. If the wiki package version changes, reset R to 1.

To make the release process smoother, set the image tag and wiki package version as environment variables:

export WIKI_VERSION=X.Y.Z
export TAG=${WIKI_VERSION}-R

Building the container image

Build the container image for your local platform to test before publishing:

docker buildx build \
  --file Containerfile \
  --no-cache \
  --build-arg WIKI_VERSION=$WIKI_VERSION \
  --build-arg TAG=$TAG \
  --build-arg SOURCE_COMMIT=$(git rev-parse HEAD) \
  --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
  -t git.coopcloud.tech/wiki-cafe/fedwiki-oci-image:latest \
  -t git.coopcloud.tech/wiki-cafe/fedwiki-oci-image:$TAG \
  --load .

Note: We build for the local platform only at this stage so we can load the image locally for testing. The multi-platform build will happen during the publishing step.

Tracking versions of wiki modules and verifying the build

This repository includes a WIKI_VERSIONS.txt file to track the versions of the wiki modules included in the image.

Update this file to verify the build before publishing:

docker run --rm git.coopcloud.tech/wiki-cafe/fedwiki-oci-image:$TAG wiki --version > WIKI_VERSIONS.txt

To verify the build, we can also run the container and visit localhost in a web browser to ensure the wiki is functioning correctly.

docker run --rm -p 3000:3000 git.coopcloud.tech/wiki-cafe/fedwiki-oci-image:$TAG

Then open http://localhost:3000 in your web browser.

Committing, Tagging and Pushing the Release

With the WIKI_VERSIONS.txt file updated, commit all changes, tag the release, and push everything to the remote repository.

git add -A
git commit -m "Release $TAG"
git tag -a "$TAG" -m "Release $TAG"
git push --atomic origin main "$TAG"

Publishing the container image

After building and verifying the container image locally, push it to the registry.

Note: Due to registry timeout issues with direct --push during build, we push each tag separately rather than using --push with buildx.

docker push git.coopcloud.tech/wiki-cafe/fedwiki-oci-image:$TAG
docker push git.coopcloud.tech/wiki-cafe/fedwiki-oci-image:latest
Description
No description provided
Readme Apache-2.0 32 KiB
Languages
Dockerfile 100%