temporalio / docker-builds

Temporal service Docker images build
https://hub.docker.com/r/temporaliotest/auto-setup
MIT License
30 stars 59 forks source link

Verify binaries are for correct platform #223

Closed stephanos closed 4 months ago

stephanos commented 5 months ago

What was changed

Add verification step for Docker images before releasing them.

PS: I didn't add this to the build step because the risk is high that it would fail silently without anyone noticing.

Why?

To ensure we release the right binary for each platform.

Checklist

  1. Closes

  2. How was this tested:

Running from terminal:

Pass

DST_REPO=temporalio SRC_REPO=temporaliotest PASSWORD=wrong USERNAME=wrong IMAGES=server TAG=dummy COMMIT=bc8c2cd1928c4a6dd3330b48a370cf2c10672968 go run src/image_copy/main.go

verifying binaries in '/usr/local/bin' from 'temporaliotest/server:sha-bc8c2cd' for platform 'linux/arm64' are 'ARM'
Unable to find image 'temporaliotest/server:sha-bc8c2cd' locally
sha-bc8c2cd: Pulling from temporaliotest/server
Digest: sha256:aefb7a40c9bb176e96fb4611c3349631afe61a48b6094be551f2e475d9dccdd6
Status: Downloaded newer image for temporaliotest/server:sha-bc8c2cd
/usr/local/bin/dockerize is ARM
/usr/local/bin/tctl is ARM
/usr/local/bin/tctl-authorization-plugin is ARM
/usr/local/bin/temporal is ARM
/usr/local/bin/temporal-server is ARM

verifying binaries in '/usr/local/bin' from 'temporaliotest/server:sha-bc8c2cd' for platform 'linux/amd64' are 'x86'
Unable to find image 'temporaliotest/server:sha-bc8c2cd' locally
sha-bc8c2cd: Pulling from temporaliotest/server
Digest: sha256:aefb7a40c9bb176e96fb4611c3349631afe61a48b6094be551f2e475d9dccdd6
Status: Downloaded newer image for temporaliotest/server:sha-bc8c2cd
/usr/local/bin/dockerize is x86
/usr/local/bin/tctl is x86
/usr/local/bin/tctl-authorization-plugin is x86
/usr/local/bin/temporal is x86
/usr/local/bin/temporal-server is x86

Fail

DST_REPO=temporalio SRC_REPO=temporaliotest PASSWORD=wrong USERNAME=wrong IMAGES=server TAG=dummy COMMIT=e3ae365 go run src/image_copy/main.go                                 

verifying binaries in '/usr/local/bin' from 'temporaliotest/server:sha-e3ae365' for platform 'linux/arm64' are 'ARM'
/usr/local/bin/dockerize is ARM
/usr/local/bin/tctl is ARM
/usr/local/bin/tctl-authorization-plugin is ARM
/usr/local/bin/temporal is ARM
/usr/local/bin/temporal-server is not ARM
/usr/local/bin/temporal-server: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=zYjsJtF6wN_KxfTbdu3M/JvdfsrR994VzMaLyzT7r/zPP_QXPvSn-BxercUyWN/93737e5xSZZUcGmDZcrc, with debug_info, not stripped

2024/06/21 13:50:04 exit status 1
exit status 1
  1. Any docs updates needed?