El fichero docker-compose.yml
En el fichero docker-compose.yml
vamos a definir el escenario. El programa docker-compose se debe ejecutar en el directorio donde este ese fichero. Por lo tanto tenderemos un directorio con un fichero docker-compose.yml
para cada una las aplicaciones que queremos desplegar. Por ejemplo para la ejecución de la aplicación Let’s Chat podríamos tener un fichero docker-compose.yml
, dentro de una carpeta, con el siguiente contenido:
version: '3.1'
services:
app:
container_name: letschat
image: sdelements/lets-chat
restart: always
environment:
LCB_DATABASE_URI: mongodb://mongo/letschat
ports:
- 80:8080
depends_on:
- db
db:
container_name: mongo
image: mongo
restart: always
volumes:
- /opt/mongo:/data/db
Puedes encontrar todos los parámetros que podemos definir en la documentación oficial.
Algunos parámetros interesantes:
- Es escenario está formado por
services
. Cada uno ello va a crear un contenedor. restart: always
: Indicamos la política de reinicio del contenedor si por cualquier condición se para. Más información.depend on
: Indica la dependencia entre contenedores. No se va a iniciar un contenedor hasta que otro este funcionando. Más información.
Cuando creamos un escenario con docker-compose
se crea una nueva red definida por el usuario donde se conectan los contenedores, por lo tanto, obtenemos resolución por dns que resuelve tanto el nombre del contenedor (por ejemplo, mongo
) como el nombre del servicio (por ejemplo, db
).