Por que separar as duas coisas
Mantenho o editor e as ferramentas de desenvolvimento no meu Mac ARM e rodo o Docker em outra máquina, com Linux ARM. Bancos de dados e outros serviços podem consumir bastante memória e armazenamento, por isso levei os containers, as imagens e os volumes para lá.
Continuo usando Docker, Compose e Buildx pelo Mac. Um contexto do Docker faz a conexão com o Linux por SSH.
O que o instalador faz
Reuni tudo em um instalador que configura as ferramentas nas duas máquinas, cria o contexto do Docker e confere a comunicação entre elas. Há módulos opcionais para armazenamento em SSD e limpeza de recursos antigos, além do Colima para rodar containers localmente no Mac.
O projeto começou com uma Radxa rodando Armbian. O instalador também inclui configurações para outros equipamentos ARM64 com Debian, Ubuntu ou Armbian.
O que roda em cada máquina
Desenvolvimento no Mac. Contêineres no Linux ARM.
via SSH
No Mac
- Editor
- Docker CLI
- Compose
- Buildx
A CLI do Docker se conecta ao Engine remoto por um contexto Docker via SSH.
No Linux ARM
- Docker Engine
- Imagens
- Volumes
- Contêineres
O Docker Engine executa os contêineres e armazena as imagens e os volumes no Linux ARM.
Essa divisão depende da conexão entre as duas máquinas.
Limitações
Essa configuração depende da conexão entre as máquinas, então uma rede lenta atrapalha. Como o Linux também roda em ARM, mover o projeto para lá não resolve dependências que só funcionam em x86.