Я нахожусь в процессе настройки мультиконтейнера для Wordpress, используя Docker (согласно этой статье ).
В настоящее время у меня есть служба wordpress
, которая имеетименованный том в нем выглядит так:
volumes:
- wordpress:/var/www/html
, который отлично подходит для установки Wordpress по умолчанию.Но у меня также есть некоторые файлы, которые мне нужно передать в контейнер для темы / плагинов и т. Д.
Я понимаю, что этого также можно достичь, установив сопоставление между двумя путями на сервере и соответствующим контейнером.,Примерно так:
volumes:
- ./wp-content:/var/www/html/wp-content
Насколько я понимаю, том назван так, чтобы другие контейнеры могли взаимодействовать с ним (как требуется в моем случае, который вы можете увидеть в полном файле docker-compose.yaml
ниже),
Итак, как правильно создать именованный том , который задает пути для монтирования моих файлов в контейнер?
Здесьэто полный docker-compose.yaml
файл:
version: '3'
services:
db:
image: mysql:5.7
container_name: db
restart: unless-stopped
env_file: .env
volumes:
- dbdata:/var/lib/mysql
command: '--default-authentication-plugin=mysql_native_password'
networks:
- app-network
wordpress:
depends_on:
- db
image: wordpress:5.1.1-fpm-alpine
container_name: wordpress
restart: unless-stopped
env_file: .env
environment:
- WORDPRESS_DB_HOST=db:3306
- WORDPRESS_DB_USER=$MYSQL_USER
- WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD
- WORDPRESS_DB_NAME=$MYSQL_DATABASE
volumes:
- wordpress:/var/www/html
networks:
- app-network
webserver:
depends_on:
- wordpress
image: nginx:1.15.12-alpine
container_name: webserver
restart: unless-stopped
ports:
- "80:80"
volumes:
- wordpress:/var/www/html
- ./nginx-conf:/etc/nginx/conf.d
- certbot-etc:/etc/letsencrypt
networks:
- app-network
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
env_file: .env
ports:
- '8080:80'
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
networks:
- app-network
certbot:
depends_on:
- webserver
image: certbot/certbot
container_name: certbot
env_file: .env
volumes:
- certbot-etc:/etc/letsencrypt
- wordpress:/var/www/html
command: certonly --webroot --webroot-path=/var/www/html --email ${LETSENCRYPT_EMAIL} --agree-tos --no-eff-email --staging -d ${DOMAIN} -d www.${DOMAIN}
volumes:
certbot-etc:
wordpress:
dbdata:
networks:
app-network:
driver: bridge