-
-
Notifications
You must be signed in to change notification settings - Fork 305
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
Container exits on MacOS / ARM64 #366
Comments
Box86 being called when running steamcmd is expected. The steamcmd executable is a 32-bit application, which is incompatible with Box64.
Sadly, I don't have an M1 or Rancher Desktop to help you test things but I've seen people successfully using the services:
palworld:
image: thijsvanloef/palworld-server-docker:latest
platform: linux/amd64
restart: always |
Does it create a folder /palworld/backups ? Or /palworld/PalServer.sh for that matter? |
So this is honestly kind of crazy, I guess docker desktop is using Rosetta under the hood or something. Rancher Desktop is making a HVM for the container. box86 won't run on Apple Silicon... Could really use a 64-bit build of steamcmd. And MacOS has a native steamcmd is the other thing if that could somehow be leveraged. Some captures:
2. MacOS with M1/M2 is on AWSYou can get MacOS on Apple hardware in AWS very cheaply on spot instances for testing, like $1 for 5-hours just FYI: https://aws.amazon.com/ec2/instance-types/mac/ I've not really used Rosetta, my brain hurts now LOL. Only box64 runs, but it doesn't run the 32-bit steamcmd in Linux. |
So I managed to update with the MacOS version of steamcmd from outside the container into the bind volume. I modified start.sh to skip updates and such, and was able to get it to run actually. However, performance is horrible. I don't think there is much value to run this with emulation. If they release a native ARM64 build, and Unreal Engine 5.2 supports Apple Silicon natively now: https://www.unrealengine.com/en-US/tech-blog/unreal-engine-5-2-brings-native-support-for-apple-silicon-and-other-developments-for-macos However, PalWorld is on UnrealEngine 5.1, so maybe they will update the backend engine at some point. Here's the output of me finally getting it running:
Anyway, I saw what I wanted to test. I was hoping it would perform well, but it's much, much worse than on slower x86-64 CPUs under emulation. |
That is an interesting find. I would've thought that Rancher Desktop would be using similar Docker APIs as Docker Desktop. I have no experience with Rancher Desktop so I wouldn't really know. As far as I know, Docker Desktop on the Apple Silicon automatically uses Rosetta on incompatible images as soon as you specify the platform.
I guess Docker Desktop emulates AArch32 (32-bit ARM) with Rosetta and Rancher probably does not do it automatically? I would assume so since people using Docker Desktop were successful with running Box86 within the container. I guess you learn something new everyday.
Yup, emulation in addition to the memory leaks and (probably) unoptimized code, it is a struggle. Heck, even some amd64 hosts are struggling to serve this game. Hopefully they do release an arm64 dedicated server somehow. But I don't know how they would distribute it as steamcmd is also not built for arm64. |
Same issue happened on ARM64 "Orange pi 5b". |
@jryanearl I know you've already figured it out on your own but do you mind testing #464 with the same setup? Feel free to test it as well @pyaehein |
Describe the bug
I am trying to start the latest-arm64 container on an M1 MacBook Pro that has Rancher Desktop installed and configured. I'm using compose to try and bring it up, and I get an error.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Expect the container to run and PalWorld Server to update and run.
Actual behavior
It appears to call box86 instead of box64 when running steamcmd, I think. I was looking at this late and I need help, I think there's something broken in the underlying steamcmd-arm64 image.
Screenshots
OS information
Hardware information
docker-compose.yml contents
Container/Host Logs
Note UPDATE_ON_BOOT=true is in the docker-compose.yaml
Additional context
Rancher Desktop is a license unencumbered alternative to Docker Desktop and has better performance on MacOS supposedly. Anyway, it's free to use.
The text was updated successfully, but these errors were encountered: