Domino on Apple Silicon Update
Daniel Nashed – 16 September 2023 16:51:22
Domino isn't designed to run on ARM emulations are getting better.
As posted before Domino on Windows ARM works quite well.
But some developers need a local Domino container for testing.
The current Docker Desktop and Rancher Desktop versions with Rosetta emulation works quite well.
The only problematic part is the JVM which doesn't work in an emulated Intel environment.
This also includes the Domino Install Anywhere installer, which is based on Java as well.
What you should not try to get working
Building the Domino container doesn't work well because Java is involved.
Running Java code doesn't work and the JVM needs to be disabled for Amgr and HTTP
The Domino disable JVM
Disabling the JVM needs two notes.ini parameters to be set:
HttpDisableJVM=1
EnableJavaAgents=0
After you disabled the JVM, you can't run any Java code, which includes all OSGI and also Traveler.
But beside that the Domino server works quite well.
An environment like this is only suitable for a local development environment.
You can't expect great performance because of the CPU emulation.
Build the image remotely or import the HCL container image
Building the image on Apple Silicon is very problematic. I got it running with some tweaks, but it is a moving target.
The best option is to remotely build the image or import it.
Recommended Setup
If you have another machine running an Intel CPU it would be a much better choice to run the Domino container on a remote machine.
This could be a Linux VM on another machine or a remotely hosted Linux machine.
I would run the Domino server native on Linux with a Docker or Podman server.
Usually you would operate it remotely by opening a SSH session.
Avoid remote access for Docker daemon
Docker uses a client server model. So you could in theory run the Docker daemon on the Linux box and access it remotely from a Docker client running on your Mac.
I would personally avoid that unless you are on very tight control of the network.
The connection would need to be secured by a VPN for example WireGuard or other technologies (https://www.wireguard.com/).
The following configuration should be used with extreme care!
https://docs.docker.com/config/daemon/remote-access/
Usually remote access to the Docker daemon is not needed and should be really avoided unless you know exactly what you do.
- Comments [0]