• Как исправить ошибку ModuleNotFoundError: No module named 'mainpage' | Django + Gunicorn + docker-compose?

    AgeofCreations
    @AgeofCreations Автор вопроса
    Python, AsyncIO, AMQP
    Проблема решена. Оказывается, причина была в моём Dockerfile.
    Оказывется, особенность Gunicorn такова, что WORKDIR должна вести туда же, где находится manage.py.

    Так, что путём исправления WORKDIR /app наWORKDIR /app/backend
    и удаления одного IRMbackиз prod.yml, проблема решилась.
    Ответ написан
    1 комментарий
  • Использование volume в docker-compose?

    Последняя директива нужна для объявления собственного тома (volume), который будет создан при первом запуске сервисов. Под каждым определением можно ещё добавлять опции этого volume. Например, заявить, что он внешний и должен был быть уже создан заранее вручную:
    volumes:
      db-data:
        external: true

    - db-data в данном примере этот каталог расположенный в одной директории с docker-compose.yml?
    Нет. Это именованный volume. Его фактическая папка спрятана где-то глубоко, можно посмотреть командой docker volume inspect db-data и изначально он пустой.

    В чем отличие от такой записи(является ли она корректная?):
    - ./db-data:/var/lib/mysql/data
    Такая запись первым параметром указывает не именованный volume, а подпапку в папке с docker-compose.yml Т.е. mysql получит папку со всем её содержимым по адресу, указанному вторым параметром.

    Лучше использовать полноценные volume, чем просто монтировать локальные папки.
    Почему (на англ)
    Volumes are the preferred mechanism for persisting data generated by and used by Docker containers. While bind mounts are dependent on the directory structure of the host machine, volumes are completely managed by Docker. Volumes have several advantages over bind mounts:
    • Volumes are easier to back up or migrate than bind mounts.
    • You can manage volumes using Docker CLI commands or the Docker API.
    • Volumes work on both Linux and Windows containers.
    • Volumes can be more safely shared among multiple containers.
    • Volume drivers let you store volumes on remote hosts or cloud providers, to encrypt the contents of volumes, or to add other functionality.
    • New volumes can have their content pre-populated by a container.

    Ответ написан
    3 комментария
  • Как зайти в нормальном режиме в Debian?

    @Hanneman
    Установите графический интерфейс или переустановите Debian вместе с графическим интерфейсом, например, GNOME-ом. Во время инсталляции укажите, что вы желаете его поставить - как на картинке ниже (если не выделить, то установится без графической среды - она и не всегда нужна). Там же пишут, то если не выбрать, то "at the moment, only the core of the system is installed". P.S. print server ставить не надо, если нет необходимости, но выделите SSH Server, если планируете подключаться к машине с других хостов через SSH.

    5d69025326f4c528291531.png
    Ответ написан
    Комментировать