Skip to content

Latest commit

 

History

History
78 lines (61 loc) · 2.53 KB

README.md

File metadata and controls

78 lines (61 loc) · 2.53 KB

Publish a new base-* image

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.

Build and push base docker images using docker build

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

Build base docker images for linux/arm64 using docker buildx

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 base docker images for linux/arm64 on linux/amd64

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

Troubleshooting

  1. If there is an error during build for docker-x like this:
    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
    
    run docker run --rm --privileged linuxkit/binfmt:v0.8 first.
  2. In case of this error:
    #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
    
    run:
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    docker buildx rm builder-x
    make docker-buildx-container
    docker buildx inspect --bootstrap