Voltar
Mobile

Ambiente Mobile Profissional: React Native + Docker no Pop!_OS

Guia prático para configurar um ambiente de desenvolvimento mobile com React Native (Expo) e Docker no Pop!_OS, seguindo boas práticas e focando em produtividade.

5 min

Introdução

Configurar React Native no Linux não é difícil — difícil é fazer do jeito certo. Node fora do padrão, Java incompatível, SDK quebrado, Docker via Snap… o combo clássico do caos.

Este post mostra como montar um ambiente profissional para desenvolvimento mobile com React Native (Expo) + Android + Docker no Pop!_OS, usando apenas ferramentas oficiais e decisões que não viram dívida técnica amanhã.


Stack utilizada

  • Pop!_OS (base Ubuntu)
  • Node.js (via NVM)
  • npm (gerenciador padrão)
  • Java 17
  • Android SDK (Android Studio)
  • Expo CLI
  • EAS CLI (Expo Application Services)
  • Docker Engine + Docker Compose Plugin

Preparando o sistema

sudo apt update
sudo apt install -y \
  curl git unzip zip \
  build-essential \
  libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386

Node.js do jeito certo (NVM)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc

nvm install --lts
nvm use --lts

Versão atual do NVM: v0.40.1 (janeiro 2026)


Java 17

sudo apt install -y openjdk-17-jdk

Verifique a instalação:

java -version

Android SDK

Configure via Android Studio (site oficial). Instale API 34+, Build-Tools, Platform-Tools e Emulator.


Variáveis de ambiente

Adicione ao ~/.bashrc ou ~/.zshrc:

export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/platform-tools

Recarregue:

source ~/.bashrc

Criando o projeto com Expo

npx create-expo-app@latest MyApp
cd MyApp

Para TypeScript:

npx create-expo-app@latest MyApp --template blank-typescript

Instalando EAS CLI

npm install -g eas-cli

Faça login na sua conta Expo:

eas login

Configure o projeto:

eas build:configure

Executando o projeto

npm start

Para rodar no Android:

npm run android

Docker no Pop!_OS

Remova versões antigas:

sudo apt remove -y docker docker-engine docker.io containerd runc

Instale dependências:

sudo apt install -y ca-certificates curl gnupg lsb-release

Configure o repositório oficial:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Instale o Docker:

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker sem sudo

sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

Importante: você pode precisar fazer logout/login para que as permissões sejam aplicadas completamente.


Expo + Docker (API Backend)

No desenvolvimento Expo, use a URL do seu backend Docker:

No emulador Android:

const API_URL = "http://10.0.2.2:3333";

No dispositivo físico (mesmo WiFi):

const API_URL = "http://192.168.x.x:3333"; // IP da sua máquina

Para descobrir seu IP:

ip addr show | grep "inet "

Comandos úteis do EAS

Build de desenvolvimento:

eas build --profile development --platform android

Build de produção:

eas build --profile production --platform android

Submit para Google Play:

eas submit -p android

Conclusão

Ambiente previsível com Expo, builds facilitadas via EAS CLI e integração limpa entre mobile e backend Docker. A combinação Expo + EAS elimina muito da complexidade do React Native tradicional, mantendo a flexibilidade quando necessário.