Start Playing Federated Wiki: http://start.fed.wiki
docker run -p 3000:3000 -it --rm \
dobbs/farm
Visit http://localhost:3000 and http://anything.localhost:3000
docker run -p 3000:3000 -it --rm \
-v ~/.wiki:/home/node/.wiki \
dobbs/farm
Your wiki pages and configuration will be saved in the ~/.wiki folder.
This image's tag does not match the version of the included wiki software. Our version indicates the scale of changes in this tiny devops pipeline.
Testing new images locally:
TAG=1.0.14-prefer-title
IMAGE=dobbs/farm:$TAG
docker build --tag $IMAGE .
You might also want to remember the most recent tag:
git tag --list | tail -1
Update WIKI_VERSIONS.txt
docker run --rm $IMAGE wiki --version > WIKI_VERSIONS.txt
End-to-end recipe to publish a new version. May require judgment in the steps before git push and docker push.
# Emit current version to standard error and next version to standard out.
# use that to assign the next TAG
TAG="$(git tag --list | tail -1 | perl -lne 'print STDERR $_;s/(\d+)$/$1+1/e;print $_;')"
IMAGE=dobbs/farm:$TAG
docker build --no-cache --tag $IMAGE .
docker build --tag dobbs/farm:latest .
docker run --rm $IMAGE wiki --version > WIKI_VERSIONS.txt
git add .
git commit -m "update WIKI_VERSIONS.txt for $TAG"
git tag -am "" "$TAG"
git push --atomic origin main "$TAG"
docker push $IMAGE
docker push dobbs/farm:latest
Sometimes we publish a docker image with no changes to the wiki source
code. This allows us to pick up non-breaking changes to some of the
plugins. Using --no-cache
ensures docker re-runs this line from the
Dockerfile
in particular: npm install -g --prefix . $WIKI_PACKAGE
.
With the local kubernetes example (see examples/k8s/README.md):
k3d image import $IMAGE --cluster wiki
kubectl patch deployment.apps/wiki-deployment \
--type='json' \
-p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"'$IMAGE'"}]'