The fastest way to up a project on Yii2 using Docker

Поделиться
HTML-код
  • Опубликовано: 30 ноя 2024

Комментарии • 24

  • @danilovcode
    @danilovcode  Год назад +4

    Будете использовать такой способ?

    • @alexandr9900
      @alexandr9900 Год назад

      пробовать-то можно, но в таком случае, как я понимаю, нет подключения к базе данных

    • @danilovcode
      @danilovcode  Год назад +1

      Есть. База же в отдельном контейнере. И подключение к ней есть и должно работать и из фронтэнда и из бэкэнда. В конфиге базы в yii в качестве хоста нужно указать имя контейнера, в видео это yii-application-mysql-1. При этом в качестве пароля пользователя root нужно использовать слово "verysecret" (оно указано в docker-compose.yml), либо пользователя yii2advanced с паролем "secret":
      'dsn' => 'mysql:host=yii-application-mysql-1;dbname=yii2advanced',
      'username' => 'root',
      'password' => 'verysecret',
      'dsn' => 'mysql:host=yii-application-mysql-1;dbname=yii2advanced',
      'username' => 'yii2advanced',
      'password' => 'secret',
      Чтобы подлючиться к базе извне (например с помощью phpstorm), можно в docker-compose.yml добавить проброс портов для сервиса mysql:
      *ports:*
      *- 3306:3306*
      И потом перезапустить контейнеры
      *docker compose up -d*

  • @YuriWorldFirst
    @YuriWorldFirst Год назад +1

    Супер! очень быстро )

  • @pavelsazhin8009
    @pavelsazhin8009 Год назад

    про миграции интересно, про связи между таблицами

    • @danilovcode
      @danilovcode  Год назад

      Спасибо за предложение. Постараюсь записать такой урок

    • @begenchdovletov5034
      @begenchdovletov5034 4 месяца назад +1

      Да, кстати, буду очень благодарен если снимете урок где подробно разбираете миграцию. Так как у меня не получалось подключить миграцию. Заранее спасибо😊
      P.S.: Подписался)

    • @danilovcode
      @danilovcode  4 месяца назад

      Спасибо за подписку!

  • @ВалерийПрокофьев-и9ъ

    docker compose up -d выдает: no matching manifest for linux/arm64/v8 in the manifest list entries (apple m1)

    • @danilovcode
      @danilovcode  Год назад

      Возможно это из-за mysql. Попробуйте в docker-compose.yml заменить образ mysql на mariadb вот тут:
      mysql:
      image: mysql:5.7
      Заменить на:
      mysql:
      image: mariadb:10.5.8
      Версию (10.5.8) я указал для примера, вы можете использовать любую другую или latest.
      Если хочется использовать все же mysql, то можно попробовать указать платформу linux/x86_64:
      mysql:
      platform: linux/x86_64
      image: mysql:5.7

    • @ВалерийПрокофьев-и9ъ
      @ВалерийПрокофьев-и9ъ Год назад

      @@danilovcode спасибо, разобрался, только у меня почему-то ставит apache, в базовой версии yii2 в файле docker-compose.yml есть настройка сервера, а в advanced не пойму как это сделать...

    • @danilovcode
      @danilovcode  Год назад

      В advanced шаблоне по-умолчанию предусмотрен только apache. Вы можете настроить nginx + php-fpm по этому уроку: ruclips.net/video/gVGfegSLg14/видео.html

    • @ВалерийПрокофьев-и9ъ
      @ВалерийПрокофьев-и9ъ Год назад

      @@danilovcode cпасибо большое

  • @soloveyptichka7
    @soloveyptichka7 Год назад

    а yii-starter-kit получится так же раскрыть?

    • @danilovcode
      @danilovcode  Год назад

      Да. По сути у вас два варианта:
      1) Установить пакет, а затем из его docker-compose.yaml поднять докер
      2) Поднять докер с, например, php-fpm из докерфайла, в котором прописать доустановку всех необходимых утилит в контейнер. А затем запустить в контейнере установку пакета starter-kit
      P.S. В первом варианте все необходимые утилиты все равно нужно будет доустановить, но уже на хостовую машину.
      P.P.S. Для тех кто не в теме, поясню, что речь о github.com/yii-starter-kit/yii2-starter-kit - часть обсуждения в группе t.me/danilovcodechat

  • @Edvard-Aliev
    @Edvard-Aliev 8 месяцев назад

    Спасибо большое за видео. Если вы получаете ошибку docker Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.2.0" даже после того как composer.lock обновили до 8.2 то можете проигнорировать это сообщение через composer --ignore-platform-req=php update

    • @danilovcode
      @danilovcode  8 месяцев назад +2

      Ошибка говорит о том, что текущая версия PHP ниже необходимой, а не наоборот. Поэтому ignore-platform-req убирает ошибку, но не решает проблему. Нужно поправить вручную докерфайл frontend/Dockerfile и backend/Dockerfile - в первой строчке заменить версию php с 8.1 на 8.2:
      FROM yiisoftware/yii2-php:8.2-apache
      А затем перезапустить комоуз с опцией --build:
      docker compose up -d --build

    • @Edvard-Aliev
      @Edvard-Aliev 8 месяцев назад

      @@danilovcode класс 👍

  • @yurikvd9272
    @yurikvd9272 Год назад

    А если прислали проект с Docker? И там не localhost.

    • @danilovcode
      @danilovcode  Год назад +1

      Если там не localhost, а имя домена, то его можно прописать в hosts и открывать как будто это публичный адрес

  • @vayz7783
    @vayz7783 Год назад +2

    блин, было бы лучше что бы ты показал как прописать докер с nginx и traefik что бы можно было открывать разные проекты одновременно

    • @danilovcode
      @danilovcode  Год назад +2

      Хорошая идея! Попробую записать и такой урок в ближайшем будущем

  • @ДмитрийВинокуров-х8г
    @ДмитрийВинокуров-х8г 10 месяцев назад

    Could not find package yiisoft/yii2-app-advaced with stability stable.

    • @danilovcode
      @danilovcode  10 месяцев назад

      Какой командой запускаете установку yii?
      Попробуйте по официальной инструкции: www.yiwork.com/extension/yiisoft/yii2-app-advanced/doc/guide/2.0/en/start-installation