Я создал этот базовый 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: