Как создается именованный том с путем к папке в docker-compose - PullRequest
0 голосов
/ 26 июня 2019

Я нахожусь в процессе настройки мультиконтейнера для 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

1 Ответ

0 голосов
/ 26 июня 2019

вы можете скопировать файлы на указанный вами том, используя следующую команду:

docker cp /my/folder/myfile container:/var/www/html/myfile

замените container именем вашего контейнера.

Я надеюсь, что то, что вы ищете

...