Синхронизация файлов сопоставления томов Docker от гостя к хосту - PullRequest
0 голосов
/ 16 декабря 2018

Я создал этот базовый Dockerfile, ожидая, что test станет видимым как html / test в хосте, но это не так.Я думаю, потому что Docker создает пустой каталог html в хосте и синхронизирует его с гостем.Я пытался с Docker Run и Docker-Comose, результаты были одинаковыми.

Дело в том, что когда я делаю те же действия с образом WordPress из Dockerhub, я вижу, что он создает каталог на хосте, аккуратно синхронизируявсе файлы из / var / www / html в гостевой.Так что теперь мне интересно, как я могу создать такое же поведение.

Простой тест Dockerfile:

FROM php:7.3.0-apache-stretch

RUN touch /var/www/html/test; \
    echo success > /var/www/html/test

VOLUME /var/www/html

Простой тест docker-compose.yml:

version: '3'

services:
  php:
    image: progonkpa/php-vol:1.0
    volumes:
      - ./html:/var/www/html
    restart: always

Вещькогда я делаю те же действия с изображением WordPress из Dockerhub, я вижу, что он создает каталог на хосте, аккуратно синхронизируя все файлы из / var / www / html в гостевой.

Dockerfile WordPress

docker-compose.yml с использованием официального изображения WordPress (progonkpa / wordpress: 1.0 добавляет XDebug и другие тривиальные файлы)

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - ./docker-mysql/db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: progonkpa/wordpress:1.0
     restart: always
     ports:
       - "80:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
     restart: always
     volumes:
       - ./wordpress:/var/www/html
       - ./src:/var/www/src
       - ./vendor:/var/www/vendor

volumes:
    db_data:
...