The base-* images are published by a Github Action https://github.com/temporalio/docker-builds/actions/workflows/release-base-image.yml
Press on Run Workflow
and follow the inputs to publish your changes.
To build a new version of base docker image run:
make <base_image_name> DOCKER_IMAGE_TAG=<new_base_image_version>
Check Makefile for all possible base_image_name
options.
For example:
make base-builder DOCKER_IMAGE_TAG=1.3.0
Learn more about docker buildx
from the official doc.
Create builder container once:
make buildx-docker-container
Add -x
suffix to build target names tu build using buildx
for both linux/amd64
and linux/arm64
.
For example:
make base-builder-x DOCKER_IMAGE_TAG=1.3.0
Pass DOCKER_BUILDX_OUTPUT=registry
to automatically push image to the docker hub:
make base-builder-x DOCKER_IMAGE_TAG=1.3.0 DOCKER_BUILDX_OUTPUT=registry
Run:
docker manifest inspect temporalio/base-builder:1.3.0
to verify that published base image was built for two architectures.
Run qemu-user-static first:
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
Then run base image. For example:
docker run --rm -it --platform linux/arm64 temporalio/base-server:latest uname -m
- If there is an error during build for docker-x like this:
run
error: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/sh -c apk add --update --no-cache ca-certificates tzdata bash curl vim jq mysql-client postgresql-client python2 && curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python && pip install cqlsh" did not complete successfully: exit code: 1
docker run --rm --privileged linuxkit/binfmt:v0.8
first. - In case of this error:
run:
#5 2.181 (4/31) Installing bash (5.1.0-r0) #5 2.370 Executing bash-5.1.0-r0.post-install #5 2.380 ERROR: bash-5.1.0-r0.post-install: script exited with error 1
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes docker buildx rm builder-x make docker-buildx-container docker buildx inspect --bootstrap