Backups

Contexto

Um cliente pediu para eu fazer um teste em uma aplicação que estava rodando em um droplet da Digital Ocean. O teste era simples, mas seguindo boas práticas não iria fazer isso direto no servidor de produção dele. Então o que fiz foi subir um container com a aplicação dele localmente.

Abaixo vou deixar o passo a passo que realizei para trazer o banco de dados para o meu ambiente local.

Banco de dados utilizado: PostgreSQL

Passo a passo

  1. Conectar-se ao servidor DigitalOcean
ssh root@<ip do servidor>
Note

Certifique-se de substituir “ip do servidor” pelo endereço IP real do seu servidor.

  1. Criar um arquivo tar do volume Docker
docker run --rm -v postgres_data:/volume -v $(pwd):/backup alpine tar -cjf /backup/postgres_data.tar.bz2 -C /volume .

Isso criará um arquivo chamado “postgres_data.tar.bz2” no diretório atual dentro do servidor DigitalOcean.

Note

Certifique-se de substituir “postgres_data” pelo nome do volume que você deseja fazer backup.

  1. Copiar o arquivo tar para o seu computador local
scp root@seu_endereco_ip:/caminho/para/postgres_data.tar.bz2 /caminho/local/para/salvar/o/arquivo/
  1. Descompactar o arquivo tar
tar -xjf postgres_data.tar.bz2
  1. Neste passo você tem duas opções:

    1. Criar um container com o volume descompactado
    docker run -d -v /caminho/local/para/postgres_data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=sua_senha -p 5432:5432 postgres
    1. Ou adicionar o volume diretamente em seu arquivo docker compose:
    volumes:
      - /caminho/local/para/postgres_data:/var/lib/postgresql/data