web-dev-qa-db-fra.com

Échec de la création d'un nouveau fil d'exploitation (avoir déjà 2; errno = 22)

J'ai Mac avec M1 et si j'essaie d'exécuter Docker Conteneur avec Nginx-Proxy de Jwilder, j'ai eu cette erreur:

api_clever4sms_nginx-proxy | runtime: failed to create new OS thread (have 2 already; errno=22)
api_clever4sms_nginx-proxy | fatal error: newosproc
api_clever4sms_nginx-proxy | 
api_clever4sms_nginx-proxy | runtime stack:
api_clever4sms_nginx-proxy | runtime.throw(0x884500, 0x9)
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
api_clever4sms_nginx-proxy | runtime.newosproc(0xc820026000, 0xc820035fc0)
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
api_clever4sms_nginx-proxy | runtime.newm(0x932358, 0x0)
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
api_clever4sms_nginx-proxy | runtime.main.func1()
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
api_clever4sms_nginx-proxy | runtime.systemstack(0xa8e800)
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/asm_AMD64.s:291 +0x79
api_clever4sms_nginx-proxy | runtime.mstart()
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/proc.go:1048
api_clever4sms_nginx-proxy | 
api_clever4sms_nginx-proxy | goroutine 1 [running]:
api_clever4sms_nginx-proxy | runtime.systemstack_switch()
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/asm_AMD64.s:245 fp=0xc820020770 sp=0xc820020768
api_clever4sms_nginx-proxy | runtime.main()
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
api_clever4sms_nginx-proxy | runtime.goexit()
api_clever4sms_nginx-proxy |    /usr/local/go1.6/src/runtime/asm_AMD64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
api_clever4sms_nginx-proxy exited with code 2

S'il vous plaît savez-vous comment résoudre ce problème?

10
Petr Kvasnička

Docker a la capacité d'émuler AMD64 au arm64 à travers QEM qui est intégré à Docker Desktop pour Mac .

Programmes compilés pour AMD64/x86_64 devrait toujours fonctionner à travers cette émulation si le dockerfile est construit pour AMD64

DockerFile:

FROM --platform=linux/AMD64 your_AMD64_image
...

ou variable env variable DOCKER_DEFAULT_PLATFORM=linux/AMD64

Le problème est qu'il semble y avoir un bogue dans QEMU.

Voici un problème similaire: https://gitlab.com/qemu-project/qemu/-/issues/34

1
Timo Huovinen

J'exécute MySQL Docker dans mon M1 (Arm64) et j'ai eu la même erreur lorsque j'essaie de construire un conteneur. Je change l'image MySQL Docker pour être image: mysql:8.0.26, platform: linux/x86_64 et ajouter default_authentication_plugin=mysql_native_password à my.cnf puis je reconstruit un conteneur Docker à travers ces paramètres et cela fonctionne.

0
Xiaogang