Tengo un lugar Dockerfiledonde 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 docker-compose.ymlarchivo, solo está el directorio aw3somevideoy dentro aw3somevideono 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 volumesy, si ese es el caso, dígame cómo copiar mis archivos existentes al contenedor a través de un docker-compose.ymlarchivo.
docker
copy
docker-compose
volumes
El doctor
fuente
fuente



volumes:sección de tu archivo docker-compose. Tu imagen ya tiene los datos. La sección volúmenes: simplemente sobrescribe los datos. También muévase al formato actual de docker-compose (versión 2).Respuestas:
Dado
si
/dir/on/hostno existe, se crea en el host y el contenido vacío se monta en el contenedor en/var/www/html. Cualquier contenido que tuviera antes/var/www/htmldentro del contenedor es inaccesible, hasta que desmonte el volumen; la nueva montura oculta el contenido anterior.fuente
var/www/html/ya no se copie/dir/on/hostincluso cuando no existe? ¿Hay alguna forma de forzar la copia de los datos desde el contenedor de la ventana acoplable al host cuando se ataca un contenedor por primera vez?docker run -v /dir/on/host:/hostdir php sh -c "cp -rp /var/www/html/* /hostdir && exec myapp". No olvide utilizarexecpara invocar el comando final para que se le asigne PID1. Eso asegurará que myapp reciba señales de terminación (Ctrl-C por ejemplo).