We use Depot to build multi-architecture images for Dockside, and Docker Hub to store them. The following process requires access to the NewsNow Labs' Depot and Docker Hub accounts (or your own accounts, with the process suitably modified).
- Set up Depot
- Follow the instructions on the Depot website to install the Depot CLI.
- From within the root of the Dockside repo, run
depot login
to generate adepot.json
file, if you do not have one already. You may need to send your authorization URL for approval to somone who is authorized.
- Build a single platform docker image for each supported platform and resolve any build issues, with the following commands:
(These commands will each build an image called
./build/build.sh --builder depot --tag test --platform linux/amd64 ./build/build.sh --builder depot --tag test --platform linux/arm64 ./build/build.sh --builder depot --tag test --platform linux/arm/v7
newsnowlabs/dockside:test
) - Build a multiplatform docker image for testing, pushing it to the image repository. (Please note, this commands executes quickly as it draws upon the cached image layers from the previous build steps.)
N.B.
./build/build.sh --builder depot --tag test --push
--push
will push your image to Docker Hub. - Test your multiplatform image by launching it within Dockside using the 'Dockside (IDE from image)' profile and the
newsnowlabs/dockside:test
image, ideally on our supported range of architectures. - Prepare a new GitHub release with a semantic versioned tag in the form
vA.B.C
and title and text composed from the git log messages of the intervening commits. Publish the release. - Pull the new git release tag
- Make sure
git status
andgit stash list
is clean - Rebuild the multiplatform docker image, tagged with both the git release tag
vA.B.C
andlatest
, pushing it to the image repository../build/build.sh --builder depot --tag latest --tag vA.B.C --push
- Make sure
- Announce the release on the NewsNow Labs
#general
Slack channel, in similar language to that used for the GitHub release.
That completes the process of building a Dockside image for production.