casdoor / casdoor

An open-source UI-first Identity and Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, RADIUS, Google Workspace, Active Directory and Kerberos
https://casdoor.org
Apache License 2.0
9.2k stars 1.09k forks source link

feat: add back arm64 support in Docker image #2969

Closed AlexanderBabel closed 1 month ago

AlexanderBabel commented 1 month ago

Hey, I saw you had support for ARM64 in the past but dropped it because of performance concerns.

I optimized the Dockerfile to significantly speed up the ARM64 build process. Now it should only take around the same time as a build just for AMD64. I did that by specifying the BUILDPLATFORM. With that, the GitHub runner does not have to emulate ARM64 during the build of the go binaries and the frontend. Beforehand, every step of the Dockerfile was executed twice. The frontend was built on AMD64 and ARM64, as well as the both go binaries. Now, everything is only built once on AMD64.

Example pipeline run

Build Time
Current build (1.622.0) 7m6s
Previous ARM64 build 5h12m
New ARM64 build 9m22s

I really hope the team reconsiders the previous standpoint in https://github.com/casdoor/casdoor/issues/2416#issuecomment-2041381467 and considers this Pull Request as a solution for the ARM64 topic. If you have any feedback/adjustment wishes, I am happy to help.

casbin-bot commented 1 month ago

@tangyang9464 @imp2002 please review

CLAassistant commented 1 month ago

CLA assistant check
All committers have signed the CLA.

casbin-bot commented 1 month ago

:tada: This PR is included in version 1.621.0 :tada:

The release is available on GitHub release

Your semantic-release bot :package::rocket: