DEV Community

Diego Novais
Diego Novais

Posted on

Ruby e Rails no Mac M1 sem Dor de Cabeça: OrbStack, Mise e Containers

🛠 O que vamos fazer?

  1. Instalar o OrbStack no macOS
  2. Subir containers de serviços como PostgreSQL e Redis
  3. Criar uma máquina virtual Linux amd64
  4. Instalar dependências, Mise, Ruby e Rails na VM
  5. Usar o terminal, navegador e VSCode normalmente

🔹 1. Instalando o OrbStack

O OrbStack é um ambiente leve para rodar Docker e VMs Linux no macOS, ideal para máquinas com chips ARM (M1/M2).

🔽 Passo 1: Baixar e instalar o OrbStack

  1. Acesse https://orbstack.dev e baixe a versão mais recente.
  2. Abra o arquivo .dmg e arraste o OrbStack para a pasta Aplicativos
  3. Abra o OrbStack e siga as instruções de configuração

🔍 Verificando a instalação

Para garantir que o OrbStack está instalado corretamente, abra o Terminal e execute:

orb version
Enter fullscreen mode Exit fullscreen mode

Se estiver tudo certo, o OrbStack mostrará a versão instalada.

Caso precise consultar os comandos disponíveis no OrbStack, use:

orb help
Enter fullscreen mode Exit fullscreen mode

Isso exibirá uma lista com as opções e comandos disponíveis.


🔹 2. Rodando Containers com PostgreSQL e Redis

O OrbStack já vem com suporte a Docker, então podemos rodar containers diretamente.

📌 Passo 1: Criar um docker-compose.yml para PostgreSQL e Redis

Crie uma pasta para os serviços:

mkdir -p ~/orbstack-services && cd ~/orbstack-services
Enter fullscreen mode Exit fullscreen mode

Crie um arquivo docker-compose.yml:

version: "3.8"

services:
  postgres:
    image: postgres:latest
    container_name: postgres
    restart: always
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:latest
    container_name: redis
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:
Enter fullscreen mode Exit fullscreen mode

Obs.: O local onde criamos o arquivo docker-compose.yml neste tutorial é apenas didático e serve para fins de demonstração.
Se o seu projeto já possui um docker-compose.yml, o ideal é utilizá-lo e apenas adicionar os serviços necessários (como PostgreSQL, Redis, etc.), mantendo a organização e consistência com o restante da equipe.

📌 Passo 2: Subir os containers

Execute:

docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

Agora você tem PostgreSQL rodando na porta 5432 e Redis na 6379.

Para verificar os containers rodando:

docker ps
Enter fullscreen mode Exit fullscreen mode

Se precisar parar os serviços:

docker-compose down
Enter fullscreen mode Exit fullscreen mode

🔹 3. Criando uma Máquina Virtual Linux com Arquitetura amd64

Por padrão, o macOS M1/M2 usa ARM64, mas alguns softwares exigem amd64 (x86_64).

O OrbStack permite rodar uma VM amd64 sem complicações.

📌 Passo 1: Criar a VM Linux amd64

Execute no terminal:

orb create -a amd64 ubuntu linux-amd64 --set-password <senha>
Enter fullscreen mode Exit fullscreen mode

Importante: Substitua <senha> por uma senha que você consiga lembrar.

Isso criará uma máquina virtual Ubuntu com arquitetura amd64.

📌 Passo 2: Iniciar e acessar a VM

Para iniciar:

orb start linux-amd64
Enter fullscreen mode Exit fullscreen mode

Para acessar:

orb shell linux-amd64
Enter fullscreen mode Exit fullscreen mode

Agora você tem um ambiente Linux compatível com amd64, evitando problemas de compatibilidade no macOS M1/M2!

📌 Passo 3: Verificar a arquitetura

Dentro da VM, execute:

orb uname -a
Enter fullscreen mode Exit fullscreen mode

Se tudo estiver correto, a saída será x86_64.

Caso precise consultar os comandos disponíveis no OrbStack, execute:

orb help
Enter fullscreen mode Exit fullscreen mode

🔹 4. Instalando Dependências, Mise, Ruby e Rails na VM

Antes de instalar o Mise e o Ruby, precisamos garantir que todas as dependências estão instaladas.

📌 Passo 1: Instalar Dependências para o Ruby

Execute dentro da VM OrbStack:

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential libssl-dev libreadline-dev zlib1g-dev \
  libsqlite3-dev libffi-dev libgdbm-dev libncurses5-dev libyaml-dev \
  libgmp-dev libgmp3-dev autoconf bison
Enter fullscreen mode Exit fullscreen mode

📌 Passo 2: Instalar o Mise

Dentro da VM, execute:

curl https://mise.run | sh
exec $SHELL
Enter fullscreen mode Exit fullscreen mode

Verifique a instalação:

mise --version
Enter fullscreen mode Exit fullscreen mode

📌 Passo 3: Instalar Ruby

Dentro da VM, execute:

mise install ruby
Enter fullscreen mode Exit fullscreen mode

Defina a versão global do Ruby:

mise use -g ruby latest
Enter fullscreen mode Exit fullscreen mode

Verifique a instalação:

ruby -v
Enter fullscreen mode Exit fullscreen mode

📌 Passo 4: Instalar Rails

Agora, instale o Rails:

gem install rails
Enter fullscreen mode Exit fullscreen mode

Verifique a instalação:

rails -v
Enter fullscreen mode Exit fullscreen mode

Agora você tem Ruby e Rails rodando dentro da VM Linux amd64.


🔹 5. Usando o terminal, navegador e VSCode normalmente

📌 Terminal Normal

Você pode acessar a VM no terminal normal do macOS:

orb shell linux-amd64
Enter fullscreen mode Exit fullscreen mode

Se quiser rodar Rails normalmente:

rails new meu_projeto
cd meu_projeto
rails s
Enter fullscreen mode Exit fullscreen mode

E acessar pelo navegador normal em http://localhost:3000.

📌 Acessando arquivos no VSCode

Se quiser editar o projeto no VSCode sem complicação, instale a extensão Remote - SSH no VSCode e acesse a VM por SSH.

Ou use o comando:

code .
Enter fullscreen mode Exit fullscreen mode

Isso abrirá o projeto no VSCode normal, como se fosse um ambiente local.


🎯 Conclusão

Agora você tem um ambiente completo no OrbStack, rodando:

✅ Containers para PostgreSQL e Redis

✅ Uma máquina virtual Ubuntu amd64, evitando problemas no M1/M2

Ruby e Rails instalados com Mise

✅ Tudo funcionando no terminal, navegador e VSCode normal

Se precisar remover a VM:

orb delete linux-amd64
Enter fullscreen mode Exit fullscreen mode

Se precisar parar os containers:

docker-compose down
Enter fullscreen mode Exit fullscreen mode

Agora seu ambiente está pronto! 🚀

Heroku

Amplify your impact where it matters most — building exceptional apps.

Leave the infrastructure headaches to us, while you focus on pushing boundaries, realizing your vision, and making a lasting impression on your users.

Get Started

Top comments (0)