Hasta ahora, he usado una pila LAMP local para desarrollar mis proyectos web y desplegarlos manualmente en el servidor. Para el próximo proyecto, quiero usar docker y docker-compose para crear mariaDB, NGINX y un contenedor de proyectos para facilitar el desarrollo y la implementación.
Al desarrollar, quiero que mi directorio de código en la máquina host se sincronice con el contenedor docker. Sé que eso podría lograrse ejecutando
docker run -dt --name containerName -v /path/on/host:/path/in/containeren el cli como se indica aquí , pero quiero hacerlo dentro de un archivo docker-compose v2.
Estoy tan lejos como para tener un archivo docker-composer.yml con este aspecto:
version: '2' services: db: #[...] myProj: build: ./myProj image: myProj depends_on: - db volumes: myCodeVolume:/var/www volumes: myCodeVolume:¿Cómo puedo sincronizar mi directorio /var/www en el contenedor con mi máquina host (escritorio Ubuntu, macos o máquina Windows)?
Gracias por tu ayuda.
Es más o menos de la misma manera, realiza el mapeo de host:container directamente debajo de la clave services.myProj.volumes en su archivo de redacción:
version: '2' services: ... myProj: ... volumes: /path/to/file/on/host:/var/www Tenga en cuenta que se elimina la clave de volumes de nivel superior.
Este archivo podría traducirse a:
docker create --links db -v /path/to/file/on/host:/var/www myProj Cuando docker-compose encuentra la sección de volumes de nivel superior, intenta que docker volume create las claves debajo de ella primero antes de crear cualquier otro contenedor. Esos volúmenes podrían usarse para almacenar los datos que desea que sean persistentes en todos los contenedores. Entonces, si tomo su archivo como ejemplo, se traduciría en algo como esto:
docker volume create myCodeVolume docker create --links db -v myCodeVoume:/var/www myProj