Apple M1, émulation Docker arm64

Où puis-je spécifier --platform linux/arm64 dans la séquence ./launcher rebuild app ?

Je dois tester Discourse/Docker localement sur M1.

Ce serait formidable de pouvoir définir cela jusqu’à ce que la version ARM soit entièrement implémentée.

Cordialement,
Walker

Discourse ne fonctionne pas encore sur arm64, il n’y a donc pas d’option correspondante dans le lanceur.

Nous y travaillons activement et plusieurs membres de notre équipe l’utilisent déjà sur M1, mais cela nécessite toujours une branche de libv8, une dépendance transitive provenant de miniracer.

Merci, Rafael.

Vous êtes tous formidables.

Meilleures salutations,
Walker

Vous pourriez essayer le paramètre docker args que propose le launcher, cela pourrait fonctionner.

Comment ça se passe côté performances en dev ?

Performances incroyables pour les tâches Rails mono-cœur, comme la création d’un sujet ou l’affichage d’un sujet. Encore beaucoup plus lent que n’importe quelle offre x86_64 récente en multi-cœur ou pour toute opération touchant les entrées/sorties disque.

Je vois. Merci pour ces informations. Je pense que le support logiciel pour M1 mettra un certain temps à être optimal, mais l’avenir s’annonce prometteur.

Cela peut sembler étrange, mais cela me rend un peu heureux que mon appareil récemment acheté ne soit pas soudainement obsolète. :wink:

Si cela ne fonctionne pas, vous pouvez utiliser la variable d’environnement DOCKER_DEFAULT_PLATFORM. Actuellement, j’ai :

export DOCKER_DEFAULT_PLATFORM=linux/amd64

dans mon profil zsh. Lorsque j’utilise Docker, je souhaite presque toujours que l’architecture corresponde à celle des systèmes de production.

Par rapport aux MacBooks de la génération précédente, c’est une nette amélioration, même si les problèmes de performance du système de fichiers persistent. Un bureau Linux haut de gamme restera néanmoins plus performant.

Par exemple, je peux exécuter bin/turbo_rspec sur le cœur en environ 2 minutes 50 secondes (M1 MacBook Pro, avec Discourse, Redis et Postgres exécutés nativement). Les membres de l’équipe sur des bureaux Linux haut de gamme peuvent le faire en environ 1 minute.

Quelle est la feuille de route pour que cela soit activé en version stable ?

Nous avons besoin d’une nouvelle version de mini racer / v8 gem, aucune date de sortie prévue pour le moment, nous testons actuellement les versions alpha

@sam et comment se passent les tests ? Je suis très intéressé par la version compatible M1.

Ce n’est pas si mauvais comme timing… il y a des gens (développeurs) qui ne s’en approchent même pas…

Pour le développement de Discourse sur M1, vous trouverez des informations sur le forum Rails : Tips and tricks for developing Rails applications on Apple Silicon - rubyonrails-talk - Ruby on Rails Discussions. Plusieurs membres de notre équipe l’utilisent au quotidien, et cela fonctionne bien.

Je ne recommande cependant pas d’exécuter un serveur Discourse de production sur M1.

Si c’est le cas, pourquoi ne pas le publier en version stable (GA) ?

Je ne recommanderais pas d’essayer d’exécuter un serveur Discourse de production sur M1, cependant.

Pourquoi pas ?

@david

C’est absolument magnifique. Je ne trouve pas les mots pour te remercier pour cela. Excellent travail.

Par ailleurs, le MacBook Air M1 est-il suffisamment performant pour le développement de Discourse ?

Je suppose que oui :slight_smile:

C’est absolument magnifique. Je suis sans mots pour vous remercier. Excellent travail.

Je suppose que faire la promotion de Discourse suffira…

Je ne suis pas sûr de comprendre… tout cela est public, vous pouvez suivre ces instructions vous-même et démarrer.

Nos instructions d’installation pour la production sont destinées à être exécutées sur un hôte Linux AMD64. Vous pourriez peut-être le faire fonctionner sur d’autres systèmes d’exploitation/architectures en utilisant les astuces de ce sujet, mais il n’y a aucune garantie.

Absolument. J’ai le modèle Pro, mais nous avons aussi des personnes qui utilisent des MacBook Air et des Mac Mini M1. Il semble y avoir très peu de différence de performance entre eux selon nos benchmarks de développement.

où ? dans le dépôt public officiel ?

Dans l’article que j’ai lié :

Nous n’avons apporté aucune modification à Discourse qui se trouverait dans une branche de développement privée, si c’est ce que vous vous demandez. Vous pouvez faire fonctionner Discourse sur un système M1 en installant les versions ARM64 des dépendances que nous utilisons, ce qui est expliqué dans le guide publié ci-dessus par David.

Nous aimerions tous que le dépôt officiel fonctionne avec le nouveau matériel, non ? Et pas un code caché dans un placard.