Почему на моем веб-сайте, созданном для докеров, не сохраняются данные?

Я новичок в Docker и пытаюсь настроить docker-compose.yaml в Windows 11. Пока все работает, но в моем контейнере typo3/веб-сайта не сохраняются никакие данные. Вот мой docker-compose.yaml:

version: "1"
networks: 
  lst: 
services: 
  website:
    image: martinhelmich/typo3
    ports: 
      - "80:80"
    links:
      - db
    volumes:
      - ./typo3-persisted-data:/var/www/html/
    environment: 
      TYPO3_ADMIN_USERNAME: "admin"
      TYPO3_ADMIN_PASSWORD: "123"
      TYPO3_DB_HOST: "db"
      TYPO3_DB_NAME: "typo3"
      TYPO3_CONTEXT: "Development"
      TYPO3_DB_USERNAME: "admin"
      TYPO3_DB_PASSWORD: "123"
    networks:
      - lst
  db:
    image: mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123
      - MYSQL_ROOT_HOST=%
      - MYSQL_ROOT_USER=root
      - MYSQL_DATABASE=typo3
    volumes:
      - ./mysql-data:/var/lib/mysql
    networks:
      - lst
  phpmyadmin:
    image: phpmyadmin
    links:
      - db:mysql
    ports:
      - "1234:80"
    environment:
      - MYSQL_ROOT_PASSWORD=123
      - PMA_HOST = db
    networks:
      - lst

Когда я загружаю свой сайт с этой конфигурацией, я получаю ошибку Forbidden You don't have permission to access this resource.. Я пробовал использовать именованные тома и могу получить доступ к странице, но данные не сохраняются. Что мне не хватает? Заранее большое спасибо!

Вы не должны монтировать /var/www/html, поскольку там находятся исходные файлы typo3, но я думаю, что вам необходимо создать папки fileadmin, typo3conf, typo3temp и uploads и смонтировать их в /var/www/html/fileadmin, /var/www/html/typo3conf, /var/www/html/typo3temp и /var/www/html/uploads соответственно. Лучше не использовать привязку монтирования к typo3tmp. См. исходный файл docker-compose.yml и Dockerfile.

Ghorban M. Tavakoly 17.04.2024 20:27

Вы совершенно правы, это сработало! Благодаря тонну!

42087 17.04.2024 20:33

@GhorbanM.Tavakoly, не могли бы вы преобразовать свой комментарий в ответ, чтобы его можно было пометить как решение? Спасибо.

Julian Hofmann 17.04.2024 20:44

Конечно. Я сделаю это.

Ghorban M. Tavakoly 17.04.2024 21:06
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
4
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не монтируйте /var/www/html, так как там находятся исходные файлы typo3.

Вы можете подключиться к этим каталогам:

  • /var/www/html/fileadmin
  • /var/www/html/typo3conf
  • /var/www/html/typo3temp
  • /var/www/html/uploads

Вы можете создать папку для каждого из них и привязать созданные папки к соответствующей точке монтирования. Папка typo3temp будет использоваться для временных вещей, поэтому ее не обязательно привязывать.

См. Dockerfile martinhelmich/typo3 и образец docker-compose.yml.

Другие вопросы по теме