Hay que seguir las notas en https://docs.docker.com/installation/ para el sistema operativo que esten ejecutando.
Vamos a utilizar un container ya listo para trabajar con Postgresql. El siguiente comando se encarga de descargar el container y de ejecutarlo. Si es necesario cambiar el valor de las variables POSTGRES_PASSWORD y POSTGRES_USER a unos más adecuados
$ docker run --name db -e POSTGRES_PASSWORD=manager -e POSTGRES_USER=rails -d postgres
- Construir una aplicación de Ruby on Rails
- Agregar las gemas de puma y foreman al grupo de :production
- Configurar puma
- Agregar el archivo Dockerfile al root de la aplicación de Rails
- Agregar el archivo nginx-sites en /config/container
Como vamos a utilizar otro container como base de datos, éste expone en variables de ambiente el usuario, el password y el host, por lo que en la sección de producción de database.yml tenemos que modificarla de la siguiente forma:
production:
<<: *default
database: todo_production
username: <%= ENV['PG_ENV_POSTGRES_USER'] %>
password: <%= ENV['PG_ENV_POSTGRES_PASSWORD'] %>
host: <%= ENV['PG_PORT_5432_TCP_ADDR'] %>
Para construir el contener ejecutamos:
sudo docker build -t marioch/todo .
Una vez finalizado hay que exportar las siguientes variables de ambiente:
export PORT=8080
export SECRET_KEY_BASE=$(rake secret)
Y finalmente podemos ejecutar el contener de la siguente forma:
docker run -p 8080:8080 -e SECRET_KEY_BASE=$SECRET_KEY_BASE --link db:pg marioch/todo
Para ver la aplicación trabajando nos conectamos a la IP del computador donde se está ejecutando el contener y le agregamos el puerto 8080.
gracias amigo por compartir el código