Racket docker M1 Rosetta

Thanks in advance.

I'm having trouble w/racket specifically under docker emulating x86_64. AFAIK everything else seems to be working fine.

I saw @awiersdorf started a related discussion a while back.

I'm seeing different behavior than he saw; his had sporadic crashes and I'm seeing immediate consistent failures. I've tried a also downloading and executing the installer, and saw a similar failure.

$ uname -m
arm64
$ docker run -it --platform linux/amd64 racket/racket:latest sh -c "uname -m; racket"
x86_64
Error: error reading from ~a
("petite")
Aborted
$ docker --version
Docker version 24.0.5, build ced0996

My primary suspect is something I'm doing wrong or don't understand; advice welcome.

This is not really my area of expertise, but you specified amd64 and (AFAICT), all the images are built for x86_64?

Out of my expertise too, @benknoble . But doesn't this seem right?

$ docker image inspect racket/racket:latest --format '{{.Os}}/{{.Architecture}}'
linux/amd64

As far as I can tell, I'm getting the Rosetta emulation for the right platform.

$ docker run -it --platform linux/amd64 --rm racket/racket:latest sh -c 'uname -msrpv ; (apt-get update && apt-get install procps -y) >/dev/null 2>&1; ps -ef; racket'
Linux 5.15.49-linuxkit-pr #1 SMP PREEMPT Thu May 25 07:27:39 UTC 2023 x86_64 unknown
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 17:18 pts/0    00:00:00 /rosetta/rosetta /usr/bin/sh -c uname -msrpv ; (apt-get update && apt-get install procps -y) >/dev/null 2>&1; ps -ef; racket
root       191     1 50 17:18 pts/0    00:00:00 /usr/bin/ps -ef
Error: error reading from ~a
("petite")
Aborted

For giggles, I did try it w/linux/x86_64 but no dice. Any other ideas?

tl;dr turn off rosetta, let qemu do its thing unimpeded, and you're good to go.

I run into the same issue today. Can you please clarify what exact command line you used to make it work?

Thanks for reviving this thread. I've had this problem as well.

Disabling Rosetta in the Docker Desktop settings UI fixes the problem.

2 Likes

Thanks! I found it in the settings. Turning it off does fix the problem.