Copiar archivos a un contenedor con Docker Compose
Tengo un Dockerfile
donde copio un directorio existente (con contenido) al contenedor que funciona bien:
Dockerfile
FROM php:7.0-apache
COPY Frontend/ /var/www/html/aw3somevideo/
COPY Frontend/ /var/www/html/
RUN ls -al /var/www/html
RUN chown -R www-data:www-data /var/www/html
RUN chmod -R 755 /var/www/html
Pero cuando uso un archivo docker-compose.yml
solo hay el directorio aw3somevideo
y dentro de aw3somevideo
no hay nada.
Docker-compose.yml :
php:
build: php/
volumes:
- ./Frontend/ :/var/www/html/
- ./Frontend/index.php :/var/www/html/
ports:
- 8100:80
Tal vez no entiendo la función de volumes
y si ese es el caso, por favor dígame cómo copiar mis archivos existentes a el contenedor a través de un archivo docker-compose.yml
.
1 answers
Actualizado en abril de 2017
El comportamiento ha cambiado desde que escribí la respuesta original. Ahora es consistente si el lado derecho especifica un volumen con nombre como myvolume
o una ruta en el host como /var/lib/myapp
.
Por ejemplo
volumes:
- /dir/on/host:/var/www/html
Si /dir/on/host
no existe, se crea en el host y el contenido vacío se monta en el contenedor en /var/www/html
. Lo que estaba en /var/www/html
antes es inaccesible.
---- respuesta anterior -----------
La sección volumes:
en su docker-compose sobrescribe lo que está en el directorio /var/www/html
.
Hay dos situaciones principales: {[14]]}
-
El volumen existe
En ese caso, el contenido del volumen eclipsa lo que está en el directorio dst.
Eg:
volumes: - /dir/on/host:/var/www/html
-
El volumen no existe
Si
myvolume
no existe (por ejemplo, un volumen con nombre), el contenido de /var/www/html se copiará al volumen la primera vez alrededorvolumes: - myvolume:/var/www/html
En el caso 2, si intenta montar el mismo volumen de nuevo en algún contenedor, seguirá el caso 1.
volumes:
- myvolume:/var/www/html
En ese caso (suponiendo que myvolume ya fue creado), el contenido de /var/ww/html será sobrescrito (sombreado) por lo que esté en myvolume
.
El documento oficial entra en más detalles https://docs.docker.com/compose/compose-file/#/volumes-volume-driver
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-24 11:01:31