Eu realmente amo Dokku em combinação com o plugin dokku-pg . O único problema que estou tendo com ele é que, após a reinicialização do servidor, o link do banco de dados com o aplicativo rails será removido.
Isso tem a ver com o fato de que você não pode ter certeza sobre o IP e a porta fornecidos pelo docker.
Se você já se deparou com uma situação em que teve que reiniciar o servidor e o aplicativo rails não funcionou depois, tente o seguinte:
- 1. Coloque o seguinte em um arquivo chamado
relinkdb
#!/bin/bash
APP="$1";
CURRENT_URL=`dokku config:get $APP DATABASE_URL`
dokku postgresql:create $APP
ID=$(docker ps -a | grep "postgresql/$APP":latest | awk '{print $1}')
IP=$(docker inspect $ID | grep IPAddress | awk '{ print $2 }' | tr -d ',"')
NEW_URL=$(echo $CURRENT_URL | sed -e "s/@.*//@$IP//g")
dokku config:set $APP DATABASE_URL=$NEW_URL
- 2. execute o comando
chown +x relinkdb
- 3. execute o executável com:
./relinkdb APPNAME
Isso recriará o contêiner Postgresql para Docker e vinculará o contêiner ao seu aplicativo Rails.