Estoy tratando de construir una pila con un docker-compose que debería contener otros contenedores dentro. Esto es para ejecutar un entorno de desarrollo con todos mis proyectos dentro.
Entonces, el problema es que el volumen con la fuente de la aplicación no aparece en la imagen construida.
MacOS Sierra Docker version 17.03.0-ce, build 60ccb22 Boot2Docker-cli version: v1.8.0mi árbol de directorios
/dockers <======= one directory with all docker files for each project docker-compose.yml <======= The main image /project1 <======= dockerfile for each project Dockerfile /project2 Dockerfile /project3 Dockerfile /project1 <======= project1 source folder test.txt /project2 /project3mi docker-compose.yml
project1: build: ./project1 volumes: - ../project1/:/src mi project1 para proyecto1
FROM python:2.7 RUN mkdir -p /src WORKDIR /src RUN echo "---------------------" RUN ls -la RUN echo "---------------------" Así que trato de construir el archivo docker-compose
$ sudo docker-compose build --no-cache Y luego muestra una carpeta vacía cuando espero el archivo test.txt
Building express ERROR: Cannot locate specified Dockerfile: Dockerfile ➜ docker git:(master) ✗ sudo docker-compose build --no-cache Building project1 Step 1/7 : FROM python:2.7 ---> ca388cdb5ac1 Step 2/7 : RUN mkdir -p /src ---> Running in 393a462f7a44 ---> 4fbeb32d88b3 Removing intermediate container 393a462f7a44 Step 3/7 : WORKDIR /src ---> 03ce193577ab Removing intermediate container b1cd746b699a Step 4/7 : RUN echo "--------------------------" ---> Running in 82df8a512c90 ---------------------------- ---> 6dea58ba5051 Removing intermediate container 82df8a512c90 Step 5/7 : RUN ls -la ---> Running in 905417d0cd19 total 8 drwxr-xr-x 2 root root 4096 Mar 23 17:12 . <====== EMPTY :( drwxr-xr-x 1 root root 4096 Mar 23 17:12 .. <====== EMPTY :( ---> 53764caffb1a Removing intermediate container 905417d0cd19 Step 6/7 : RUN echo "-----------------------------" ---> Running in 110e765d102a ---------------------------- ---> b752230fd6dc Removing intermediate container 110e765d102a Step 7/7 : EXPOSE 3000 ---> Running in 1cfe2e80d282 ---> 5e3e740d5a9a Removing intermediate container 1cfe2e80d282 Successfully built 5e3e740d5a9aLos volúmenes son configuraciones de tiempo de ejecución en Docker. Debido a que son configurables, si tuviera que hacer referencia a volúmenes durante la fase de compilación, esencialmente estaría creando una dependencia rota potencialmente incontrolable.
Estoy seguro de que hay una razón más técnica, pero realmente no debería hacerse. Mueva todo eso al comando de configuración en tiempo de ejecución y debería estar bien.