Я сделал проект Drupal на Docker. Я начал с официальных изображений. Я сделал docker-compose так:
version: "3"
services:
nginx:
build:
context: docker/nginx
dockerfile: Dockerfile
volumes:
- drupal:/var/www/html
ports:
- 80:80
env_file:
- ./docker/env/nginx.env
command: /bin/bash -c "sh /build_vhost.sh"
cli:
build:
context: docker/cli
dockerfile: Dockerfile
args:
DOCKER_UID: ${DOCKER_UID} # replace by your user id
DOCKER_GID: ${DOCKER_GID} # replace by your group id
volumes:
- drupal:/var/www/html
working_dir: /var/www/html
env_file:
- ./docker/env/mysql.env
drupal:
build:
context: docker/drupal
dockerfile: Dockerfile
args:
DOCKER_UID: ${DOCKER_UID} # replace by your user id
DOCKER_GID: ${DOCKER_GID} # replace by your group id
volumes:
- drupal:/var/www/html
working_dir: /var/www/html
restart: always
mariadb:
image: mariadb:10.4-bionic
ports:
- 3306:3306
volumes:
- ./docker/volumes/mariadb/databases:/var/lib/mysql
env_file:
- ./docker/env/mysql.env
volumes:
drupal:
И это работает, у меня в контейнерах есть файлы Drupal nginx
, cli
и drupal
.
Но если я изменю его, чтобы в моем проекте были файлы, например:
version: "3"
services:
nginx:
build:
context: docker/nginx
dockerfile: Dockerfile
volumes:
- ./drupal:/var/www/html
ports:
- 80:80
env_file:
- ./docker/env/nginx.env
command: /bin/bash -c "sh /build_vhost.sh"
cli:
build:
context: docker/cli
dockerfile: Dockerfile
args:
DOCKER_UID: ${DOCKER_UID} # replace by your user id
DOCKER_GID: ${DOCKER_GID} # replace by your group id
volumes:
- ./drupal:/var/www/html
working_dir: /var/www/html
env_file:
- ./docker/env/mysql.env
drupal:
build:
context: docker/drupal
dockerfile: Dockerfile
args:
DOCKER_UID: ${DOCKER_UID} # replace by your user id
DOCKER_GID: ${DOCKER_GID} # replace by your group id
volumes:
- ./drupal:/var/www/html
working_dir: /var/www/html
restart: always
mariadb:
image: mariadb:10.4-bionic
ports:
- 3306:3306
volumes:
- ./docker/volumes/mariadb/databases:/var/lib/mysql
env_file:
- ./docker/env/mysql.env
Файлы Drupal находятся не в контейнерах, а в томе: если я создаю файл в контейнере, он появляется в моей локальной файловой системе. Перед созданием образа каталог существует, и я положил на него 777 разрешений.
Вывод, когда сборка говорит, что файлы Drupal загружены и не обработаны.
Я не изменяю Dockerfile
s между двумя версиями docker-compose.
Как я могу иметь файлы Drupal в моей локальной файловой системе для версии моих изменений, пожалуйста?