= docker-compose
== related
* [[tech:docker:docker-compose:casosuso]]
== comandos
* detached start docker-compose up -d [service]
* docker-compose up -d --scale =
*
*
== variables
* maneras de definir variables para usar en el fichero **docker-compose.yml**
* están ordenadas de menos prioritaria a más prioritaria:
- se puede definir un fichero **.env** con variables para usar en el **docker-compose**: VARIABLE
- se pueden usar variables definidas en el shell dentro del **docker-compose** : ''${VARIABLE}''
- se pueden pasar variables desde la línea de comandos: ''docker run -e ='' o ''docker run %%--%%e =''
- se pueden especificar otros archivos de variables y pasarlas desde la línea de comandos: ''docker run %%--%%env-file ''
# variables de entorno preceden a estas
# variables pasadas por línea de comando preceden a estas
# docker run --env =
# se pueden especificar otras variables en otros archivos
# docker run --env-file
MYSQL_ROOT_PASSWORD=toor
MYSQL_DATABASE=xxxx
MYSQL_USER=xxxx
MYSQL_PASSWORD=xxxx
MYSQL_STORAGE_PATH=/home/mate/Docker/.storage/mysql/xxxx
* para pasar variables a los contenedores, se puede:
* usar la sección **environment**, donde definimos la variable (y podemos setear o hace que recoga el valor del shell)
* usar la sección **env_file**, donde carga los valores desde un fichero externo
* pasarlo por línea de comando con el parámetro **-e [=]** y al igual que la seccción environment, podemos setearlo directamente o dejar que coja el valor que haya en el shell
* para ver el resultado de aplicar varias configuraciones de variables y que se obtiene el resultado que se desea, podemos usar: ''docker-compose config'' y nos mostrará el fichero con el resultado final una vez hecha la conversión de las diferentes variables
* [[https://docs.docker.com/compose/environment-variables/]]