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

ARM support in dotCMS #19192

Closed
wezell opened this issue Aug 28, 2020 · 2 comments
Closed

ARM support in dotCMS #19192

wezell opened this issue Aug 28, 2020 · 2 comments
Labels
Epic Release : 5.3.8.6 Included in LTS patch release 5.3.8.6 Release : 20.10.1

Comments

@wezell
Copy link
Contributor

wezell commented Aug 28, 2020

With the rise of the ARM architecture, I would like to see dotCMS fully support running on ARM based machines, such as AWS's Graviton2. Supporting ARM fully would make dotCMS much more cost effective to run.

In testing dotCMS on a Graviton2 instance, I had to do the following to get it to run - change the java.security to use the non-blocking random provider, e.g.
vi /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.aarch64/jre/lib/security/java.security and change these lines:

securerandom.source=file:/dev/urandom
securerandom.strongAlgorithms=NativePRNGNonBlocking:SUN

Problems:

In running dotCMS, we have two main issues we need to address.

  1. Sass won't compile - We need to update the libsass and jsass libraries to support the ARM architecture. I can confirm it works if we update our jsass library to version: '5.10.3'

  2. WebP won't render - we get these errors:

Caused by: java.lang.UnsatisfiedLinkError: com.luciad.imageio.webp.WebPEncoderOptions.createConfig()J
	at com.luciad.imageio.webp.WebPEncoderOptions.createConfig(Native Method) ~[dot.webp-imageio-core-0.1.4.jar:?]
	at com.luciad.imageio.webp.WebPEncoderOptions.<init>(WebPEncoderOptions.java:26) ~[dot.webp-imageio-core-0.1.4.jar:?]
	at com.luciad.imageio.webp.WebPWriteParam.<init>(WebPWriteParam.java:30) ~[dot.webp-imageio-core-0.1.4.jar:?]
	at com.dotmarketing.image.filter.WebPImageFilter.runFilter(WebPImageFilter.java:40) ~[dotcms_5.3.7_e69b2fd.jar:?]

This is because we do not ship our webp support with the native libraries needed to run on ARM. You can what we ship with here:

https://github.com/dotCMS/webp-imageio-core/tree/master/src/main/resources/natives

We need to update that to include the webp arm native libs

wezell added a commit that referenced this issue Aug 28, 2020
@wezell wezell added the Epic label Sep 1, 2020
wezell added a commit to dotCMS/docker that referenced this issue Sep 8, 2020
wezell added a commit that referenced this issue Sep 20, 2020
* #19192 ticking up jsass version

* #19192 sass and webp arm support - at least on graviton2
wezell added a commit to dotCMS/docker that referenced this issue Sep 30, 2020
* dotCMS/core#19192 arm support

* creating entropy on startup

* updated readme

* updated readme

* undoing entrypoint change

* adding discovery.type=single-node to ES to avoid system checks

* multiarch haproxy

* building haproxy

* updating docker-composes

* fixing default db properties

* fixing default db properties

* removing unneeded code
@wezell
Copy link
Contributor Author

wezell commented Jun 3, 2021

This has been completed

@wezell wezell closed this as completed Jun 3, 2021
@wezell wezell added the LTS : Next Ticket that will be added to LTS label Jun 7, 2021
wezell added a commit that referenced this issue Jun 16, 2021
@Zakinator123
Copy link

Does that backport commit mean that ARM support is available in DotCMS 5.3.8.5?

@jcastro-dotcms jcastro-dotcms added Release : 5.3.8.6 Included in LTS patch release 5.3.8.6 and removed LTS : Next Ticket that will be added to LTS labels Aug 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Release : 5.3.8.6 Included in LTS patch release 5.3.8.6 Release : 20.10.1
Projects
None yet
Development

No branches or pull requests

3 participants