Apple M1, emulazione Docker arm64

Dove posso specificare --platform linux/arm64 nella sequenza ./launcher rebuild app?

Devo testare Discourse/Docker localmente su M1.

Sarebbe ottimo impostarlo fino a quando la build ARM non sarà completamente implementata.

Cordiali saluti,
Walker

Discourse al momento non funziona su arm64, quindi non è presente un interruttore nel launcher per questa architettura.

Stiamo lavorando attivamente alla soluzione e diversi membri del nostro team lo stanno già utilizzando su M1, ma è ancora necessaria una versione specifica di libv8, una dipendenza transitiva che proviene da miniracer.

Grazie, Rafael.

Siete fantastici.

Un saluto,
Walker

Potresti provare il parametro docker args che ha il launcher, potrebbe funzionare

Come sta andando in termini di prestazioni in dev?

Prestazioni incredibili per carichi di lavoro Rails su singolo core, come la creazione o la visualizzazione di un argomento. Tuttavia, è ancora molto più lento rispetto a qualsiasi offerta recente x86_64 in ambito multicore o a qualsiasi operazione che coinvolga l’I/O del disco.

Capisco. Grazie per queste informazioni. Penso che il supporto software per M1 richiederà un po’ di tempo per essere ottimizzato, ma il futuro appare promettente.

Sembra strano, ma mi rende un po’ felice sapere che il dispositivo acquistato di recente non è diventato obsoleto all’improvviso. :wink:

Se ciò non funziona, puoi usare la variabile d’ambiente DOCKER_DEFAULT_PLATFORM. Attualmente ho:

export DOCKER_DEFAULT_PLATFORM=linux/amd64

nel mio profilo zsh. Quando uso Docker, voglio quasi sempre che l’architettura corrisponda ai sistemi di produzione.

Rispetto ai MacBook della generazione precedente è un grande miglioramento, anche se i problemi di prestazioni del filesystem esistono ancora. Tuttavia, un desktop Linux di fascia alta lo batterà comunque.

Ad esempio, posso eseguire bin/turbo_rspec su core in circa 2m50s (M1 MacBook Pro, con Discourse, Redis e Postgres in esecuzione nativa). I membri del team su desktop Linux di fascia alta possono farlo in circa 1 minuto.

Qual è la roadmap per abilitarlo come stable?

Abbiamo bisogno di un nuovo mini racer / v8 gem da rilasciare, non abbiamo ancora una data di rilascio prevista, al momento stiamo testando le versioni alpha

@sam, come vanno i test? Sono molto interessato a una versione compatibile con M1.

Non è così male come tempistica… ci sono persone (sviluppatori) là fuori che non si avvicinano nemmeno a questo…

Per lo sviluppo di Discourse su M1, puoi trovare alcune informazioni sul forum di Rails: Tips and tricks for developing Rails applications on Apple Silicon - rubyonrails-talk - Ruby on Rails Discussions. Alcuni di noi nel team lo usano quotidianamente e funziona.

Tuttavia, non ti consigliamo di provare a eseguire un server Discourse in produzione su M1.

Se è così, perché non lo rilasciate in GA?

Non consiglierei di provare a eseguire un server Discourse di produzione su M1.

Perché no?

@david

È assolutamente splendido. Non trovo le parole per ringraziarti per questo. Ottimo lavoro.

Inoltre, il MacBook Air M1 è abbastanza potente per lo sviluppo di Discourse?

Immagino di sì :slight_smile:

È assolutamente splendido. Non trovo le parole per ringraziarti di tutto. Ottimo lavoro.

Immagino che diffondere la parola su Discourse sia sufficiente…

Non ti seguo… tutto questo è pubblico, puoi seguire tu stesso quelle istruzioni e mettere in funzione il tutto.

Le nostre istruzioni per l’installazione in produzione sono pensate per l’esecuzione su un host Linux AMD64. Potresti riuscire a farlo funzionare su altri sistemi operativi/architetture utilizzando i suggerimenti in questo argomento, ma non ci sono garanzie.

Assolutamente sì. Io ho la versione Pro, ma abbiamo anche persone che usano MacBook Air M1 e Mac Mini. Nei nostri benchmark di sviluppo sembra esserci una differenza di prestazioni molto minima tra di loro.

dove? nel repository pubblico ufficiale?

Nell’articolo a cui ho fatto riferimento:

Non abbiamo apportato modifiche a Discourse che si trovano in qualche ramo di sviluppo privato, se è questo che ti chiedevo. Puoi far funzionare Discourse su un sistema M1 installando le versioni ARM64 delle dipendenze che utilizziamo, come indicato nella guida pubblicata sopra da David.

A tutti piacerebbe che il repository ufficiale funzionasse con il nuovo hardware, giusto :wink: e non un codice nascosto in un armadio.