Skip to content
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

Build docker image for arm64 #3979

Merged
merged 3 commits into from
Mar 15, 2023
Merged

Build docker image for arm64 #3979

merged 3 commits into from
Mar 15, 2023

Conversation

chrzaszcz
Copy link
Member

@chrzaszcz chrzaszcz commented Mar 6, 2023

The goal is to build and push Docker images for both amd64 and arm64 architectures.

  1. New multi-platform Erlang/OTP images are used.
  2. A job is added to compile MongooseIM on arm64, and pack the results to a separate tarball.
  3. The docker_build_and_ship job uses docker buildx to build a multi-platform image, combining the tarballs for both architectures.

Notes:

  • Machine executor is used for arm64, because CircleCI has no Docker one (yet). Docker is used on that machine to make use of the OTP docker image, and to make build environments for both architectures more consistent.
  • There are no tests for arm64 yet, because they would complicate this PR. There is a plan to add some tests soon. The resulting images start correctly on both amd64 and arm64 machines.

Related pull requests to other repositories:

@mongoose-im

This comment was marked as outdated.

@codecov
Copy link

codecov bot commented Mar 6, 2023

Codecov Report

Patch coverage has no change and project coverage change: +0.01 🎉

Comparison is base (c9e7309) 83.55% compared to head (5fe1413) 83.56%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3979      +/-   ##
==========================================
+ Coverage   83.55%   83.56%   +0.01%     
==========================================
  Files         538      538              
  Lines       33975    33975              
==========================================
+ Hits        28387    28391       +4     
+ Misses       5588     5584       -4     

see 11 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 2 times, most recently from ebd1194 to d92cf49 Compare March 7, 2023 09:28
@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 7 times, most recently from 84e575d to 3220cea Compare March 7, 2023 13:49
@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 3 times, most recently from 50dc7c9 to 6ccbd48 Compare March 7, 2023 15:04
@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 2 times, most recently from f90e68d to 5948285 Compare March 8, 2023 09:09
@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 2 times, most recently from 7c84101 to 1e0b2fa Compare March 8, 2023 10:21
@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 2 times, most recently from 5744688 to 46e6509 Compare March 8, 2023 10:55
@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 2 times, most recently from 160d052 to f7612bb Compare March 9, 2023 10:31
@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@mongoose-im

This comment was marked as outdated.

@chrzaszcz chrzaszcz force-pushed the docker-arm64 branch 3 times, most recently from 4f65d55 to 6b0b763 Compare March 13, 2023 09:57
@mongoose-im

This comment was marked as outdated.

- CircleCI does not support docker arm64 executors (yet), so an arm64
  machine executor with Docker inside is used for now.
- Tarballs have the new format mongooseim-$ARCH.tar.gz
- To keep this changeset simple, no tests are done for arm64
@chrzaszcz chrzaszcz changed the title Use the new multiplatform images for CircleCI builds Build docker image for arm64 Mar 13, 2023
@mongoose-im
Copy link
Collaborator

mongoose-im commented Mar 13, 2023

small_tests_24 / small_tests / 5fe1413
Reports root / small


small_tests_25 / small_tests / 5fe1413
Reports root / small


ldap_mnesia_24 / ldap_mnesia / 5fe1413
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_24 / pgsql_mnesia / 5fe1413
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


pgsql_mnesia_24 / pgsql_mnesia / 5fe1413
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


ldap_mnesia_25 / ldap_mnesia / 5fe1413
Reports root/ big
OK: 2226 / Failed: 0 / User-skipped: 825 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_25 / pgsql_mnesia / 5fe1413
Reports root/ big
OK: 4178 / Failed: 0 / User-skipped: 88 / Auto-skipped: 0


riak_mnesia_24 / riak_mnesia / 5fe1413
Reports root/ big
OK: 2566 / Failed: 0 / User-skipped: 654 / Auto-skipped: 0


dynamic_domains_mysql_redis_25 / mysql_redis / 5fe1413
Reports root/ big
OK: 4152 / Failed: 0 / User-skipped: 114 / Auto-skipped: 0


elasticsearch_and_cassandra_25 / elasticsearch_and_cassandra_mnesia / 5fe1413
Reports root/ big
OK: 2728 / Failed: 0 / User-skipped: 662 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_25 / odbc_mssql_mnesia / 5fe1413
Reports root/ big
OK: 4175 / Failed: 0 / User-skipped: 91 / Auto-skipped: 0


internal_mnesia_25 / internal_mnesia / 5fe1413
Reports root/ big
OK: 2368 / Failed: 0 / User-skipped: 683 / Auto-skipped: 0


mysql_redis_25 / mysql_redis / 5fe1413
Reports root/ big
OK: 4544 / Failed: 0 / User-skipped: 111 / Auto-skipped: 0


pgsql_mnesia_25 / pgsql_mnesia / 5fe1413
Reports root/ big
OK: 4558 / Failed: 0 / User-skipped: 97 / Auto-skipped: 0


mssql_mnesia_25 / odbc_mssql_mnesia / 5fe1413
Reports root/ big
OK: 4555 / Failed: 0 / User-skipped: 100 / Auto-skipped: 0

@chrzaszcz chrzaszcz marked this pull request as ready for review March 13, 2023 15:55
Copy link
Collaborator

@DenysGonchar DenysGonchar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@DenysGonchar DenysGonchar merged commit 2858d70 into master Mar 15, 2023
@DenysGonchar DenysGonchar deleted the docker-arm64 branch March 15, 2023 14:35
@jacekwegr jacekwegr added this to the 6.1.0 milestone Apr 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants