Skip to content

Feature: provide arm64 builds to Docker Hub #1305

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
hazcod opened this issue Feb 19, 2021 · 9 comments · Fixed by #1401
Closed

Feature: provide arm64 builds to Docker Hub #1305

hazcod opened this issue Feb 19, 2021 · 9 comments · Fixed by #1401
Assignees

Comments

@hazcod
Copy link
Contributor

hazcod commented Feb 19, 2021

Is your feature request related to a problem? Please describe.
Running amd64 builds on Apple Silicon is very slow and will trigger a qemu crash on Docker for Mac on Apple Silicon hardware.

Describe the solution you'd like
Push builds native to Apple Silicon and ARM in general.

Additional context

temporal_1    | 2021/02/19 07:15:42 Schema updated from 1.3 to 1.4
temporal_1    | 2021/02/19 07:15:42 UpdateSchemeTask done
temporal_1    | + VISIBILITY_SCHEMA_DIR=/etc/temporal/schema/postgresql/v96/visibility/versioned
temporal_1    | + temporal-sql-tool --plugin postgres --ep postgres -u root -p 26257 create --db temporal_visibility
temporal_1    | + temporal-sql-tool --plugin postgres --ep postgres -u root -p 26257 --db temporal_visibility setup-schema -v 0.0
temporal_1    | qemu: uncaught target signal 11 (Segmentation fault) - core dumped
temporal_1    | /start.sh: line 68:    64 Segmentation fault      temporal-sql-tool --plugin postgres --ep $POSTGRES_SEEDS -u $POSTGRES_USER -p $DB_PORT --db $VISIBILITY_DBNAME setup-schema -v 0.0
@hazcod hazcod added the enhancement New feature or request label Feb 19, 2021
@houseofcat
Copy link

houseofcat commented Feb 19, 2021

Not a Temporal Server issue, while still frustrating. Looks like many users have this problem on the A14 chipsets.

docker/for-mac#5123

@wxing1292 wxing1292 self-assigned this Feb 19, 2021
@hazcod
Copy link
Contributor Author

hazcod commented Feb 24, 2021

I guess it's still nice to be able to push native arm64 builds now go 1.16 is out.

@hazcod
Copy link
Contributor Author

hazcod commented Mar 24, 2021

FYI now temporal builds with Go 1.16, we should push arm64 builds.

@hazcod
Copy link
Contributor Author

hazcod commented Mar 26, 2021

@wxing1292 FYI we're still not pushing arm64 builds to Docker hub.

@pquerna
Copy link
Contributor

pquerna commented May 25, 2021

Also needs temporalio/base-builder to have an arm build: https://hub.docker.com/r/temporalio/base-builder

@alexshtin
Copy link
Member

alexshtin commented Jun 14, 2021

With #1575 merged it becomes easier to build ARM images. I did it locally with simple command:

docker buildx build --platform linux/arm64 --output type=image .

We will consider adding ARM to our release images.

@hazcod
Copy link
Contributor Author

hazcod commented Sep 1, 2021

Is there an ETA on this? :-)
I still can't run temporal on my development machines.

@brent-bradbury-stoke-space
Copy link

brent-bradbury-stoke-space commented Oct 28, 2021

I am seeing this error on 1.12.3 and 1.13.0 with some subtle differences on an M1 Mac.

  1. On 1.12.3, I am able to have success if I delete the postgres container and image and allow docker-compose to build them fresh.
  2. On 1.12.3, I see a segfault if I start with an existing postgres container. On 1.12.3, this comes with a helpful error message:
temporal                | {"level":"info","ts":"2021-10-28T20:43:47.526Z","msg":"Get dynamic 
config","name":"system.advancedVisibilityWritingMode","value":"on","default-value":"on","logging-call- 
at":"config.go:79"}
temporal                | Unable to start server. Error: sql schema version compatibility check failed: version mismatch for 
keyspace/database: "temporal". Expected version: 1.6 cannot be greater than Actual version: 0.0
  1. On 1.13.0, I get a segfault with postgres in either state. There is not a helpful error message, just a segfault.
temporal                | qemu: uncaught target signal 11 (Segmentation fault) - core dumped
temporal                | ./auto-setup.sh: line 173:    52 Segmentation fault      temporal-sql-tool --plugin postgres --ep > "${POSTGRES_SEEDS}" -u "${POSTGRES_USER}" -p "${DB_PORT}" --db "${DBNAME}" update-schema -d "${SCHEMA_DIR}"

...Thus I think there is some relationship between this bug and the degree to which the postgres database is initialized.

@feedmeapples
Copy link
Contributor

feedmeapples commented Mar 28, 2022

there is a set of new GHA pipelines that build both arm64 and amd64 images:

build & release of base*-images
https://github.com/temporalio/docker-builds/actions/workflows/release-base-image.yml

build of server, admin-tools and auto-setup images:
https://github.com/temporalio/docker-builds/actions/workflows/docker.yml

release of server, admin-tools and auto-setup images:
https://github.com/temporalio/docker-builds/actions/workflows/release-temporal.yml

@feedmeapples feedmeapples self-assigned this Mar 28, 2022
@yiminc yiminc closed this as completed Oct 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants