@Tarakanishe

Что значат volumes в конце docker-compose.yml?

Пытаюсь пробросить static из приложения в nginx. Есть 2 контейнера с приложением и nginx в статье нашел как это сделать, но не могу понять что значат строки "static_volume" и где они определяются. Если бы это была папка, то путь был бы - ./static_volume/:/home/app/web/staticfiles. В документации конкретно не нашел ничего.
version: '3.7'
services:
  web:
    build:
      context: ./app
      dockerfile: Dockerfile.prod
    command: gunicorn hello_django.wsgi:application --bind 0.0.0.0:8000
    volumes:
      - static_volume:/home/app/web/staticfiles
    expose:
      - 8000
    env_file:
      - ./.env.prod
  nginx:
    build: ./nginx
    volumes:
      - static_volume:/home/app/web/staticfiles
    ports:
      - 1337:80
    depends_on:
      - web
volumes:
  static_volume:


UPD: возможно это моя глупость и они таким образом указали, что я должен там вписать свою папку со static, что я и сделал. Но остается вопрос, зачем в конце файла пишут volumes если они прописаны в сервисах? Может алиасы какие-то, например
volumes:
  static_volume:./app/static/
  • Вопрос задан
  • 951 просмотр
Решения вопроса 1
Tomio
@Tomio
backend developer (python, php)
Блок volumes, определенный на первом уровне yaml файла (перед servies или после, это не важно) предназначен для указания общих для всех сервисов областей монтирования хранилищ.

У вас указано:
volumes:
  static_volume:

Это значит, что у вас локально на диске будет создано хранилище для данных. А конкретно вот тут:
/var/lib/docker/volumes/static_volume/_data
И его смогут использовать те сервисы, которым вы его укажете.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы