# Racket docker M1 Rosetta

**URL:** <https://racket.discourse.group/t/racket-docker-m1-rosetta/2947>\
**Category:** General\
**Tags:** question\
**Created:** [June 3, 2024, 12:29am UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947 "2024-06-03T00:29:19Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![jasonhemann](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jasonhemann/32/611_2.png) [@jasonhemann](https://racket.discourse.group/u/jasonhemann)\
**Post date:** [June 3, 2024, 12:29am UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/1 "2024-06-03T00:29:20Z")

</div>

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](https://racket.discourse.group/t/docker-container-for-racket-for-architectures-other-than-x86/2705) 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.

```scheme
$ 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.

---

<div class="post-metadata">

**Author:** ![benknoble](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/benknoble/32/16_2.png) [@benknoble](https://racket.discourse.group/u/benknoble)\
**Post date:** [June 3, 2024, 3:04pm UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/2 "2024-06-03T15:04:52Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jasonhemann](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jasonhemann/32/611_2.png) [@jasonhemann](https://racket.discourse.group/u/jasonhemann)\
**Post date:** [June 3, 2024, 5:21pm UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/3 "2024-06-03T17:21:39Z")

</div>

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

```scheme
$ 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.

```scheme
$ 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?

---

<div class="post-metadata">

**Author:** ![jasonhemann](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jasonhemann/32/611_2.png) [@jasonhemann](https://racket.discourse.group/u/jasonhemann)\
**Post date:** [June 7, 2024, 2:06am UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/4 "2024-06-07T02:06:56Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![y-lu](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/y-lu/32/1872_2.png) [@y-lu](https://racket.discourse.group/u/y-lu)\
**Post date:** [August 4, 2024, 6:39pm UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/5 "2024-08-04T18:39:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![SamPhillips](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/samphillips/32/15_2.png) [@SamPhillips](https://racket.discourse.group/u/SamPhillips)\
**Post date:** [August 7, 2024, 6:08am UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/6 "2024-08-07T06:08:29Z")

</div>

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

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

 ![Screenshot of Docker Desktop Rosetta settings disabled](https://global.discourse-cdn.com/free1/uploads/racket/original/2X/7/7986a7405e1fba461921685e6eab96c7e3ab3d75.png)

---

<div class="post-metadata">

**Author:** ![y-lu](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/y-lu/32/1872_2.png) [@y-lu](https://racket.discourse.group/u/y-lu)\
**Post date:** [August 7, 2024, 9:11am UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/7 "2024-08-07T09:11:31Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jasonhemann](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jasonhemann/32/611_2.png) [@jasonhemann](https://racket.discourse.group/u/jasonhemann)\
**Post date:** [July 3, 2025, 11:00am UTC](https://racket.discourse.group/t/racket-docker-m1-rosetta/2947/8 "2025-07-03T11:00:36Z")

</div>

A better, long-term solution might be to build one's own arm64 racket image. I'm finding that the emulation is still a little flakey. For instance, I have trouble with REPL interaction but `racket -e` seems to work fine.

```scheme
$ docker run -it --platform linux/amd64 racket/racket:latest racket -e '(display (+ 2 3))'
5
$ docker run -it --platform linux/amd64 racket/racket:latest racket
Welcome to Racket v8.17 [cs].
> 3
;; hangs

```

I find I get the _best_ behavior using QEMU (Legacy) as the VMM.
