Есть. База же в отдельном контейнере. И подключение к ней есть и должно работать и из фронтэнда и из бэкэнда. В конфиге базы в 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*
Да, кстати, буду очень благодарен если снимете урок где подробно разбираете миграцию. Так как у меня не получалось подключить миграцию. Заранее спасибо😊 P.S.: Подписался)
Возможно это из-за 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
@@danilovcode спасибо, разобрался, только у меня почему-то ставит apache, в базовой версии yii2 в файле docker-compose.yml есть настройка сервера, а в advanced не пойму как это сделать...
В advanced шаблоне по-умолчанию предусмотрен только apache. Вы можете настроить nginx + php-fpm по этому уроку: ruclips.net/video/gVGfegSLg14/видео.html
Да. По сути у вас два варианта: 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
Спасибо большое за видео. Если вы получаете ошибку 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
Ошибка говорит о том, что текущая версия 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
Какой командой запускаете установку yii? Попробуйте по официальной инструкции: www.yiwork.com/extension/yiisoft/yii2-app-advanced/doc/guide/2.0/en/start-installation
Будете использовать такой способ?
пробовать-то можно, но в таком случае, как я понимаю, нет подключения к базе данных
Есть. База же в отдельном контейнере. И подключение к ней есть и должно работать и из фронтэнда и из бэкэнда. В конфиге базы в 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*
Супер! очень быстро )
про миграции интересно, про связи между таблицами
Спасибо за предложение. Постараюсь записать такой урок
Да, кстати, буду очень благодарен если снимете урок где подробно разбираете миграцию. Так как у меня не получалось подключить миграцию. Заранее спасибо😊
P.S.: Подписался)
Спасибо за подписку!
docker compose up -d выдает: no matching manifest for linux/arm64/v8 in the manifest list entries (apple m1)
Возможно это из-за 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
@@danilovcode спасибо, разобрался, только у меня почему-то ставит apache, в базовой версии yii2 в файле docker-compose.yml есть настройка сервера, а в advanced не пойму как это сделать...
В advanced шаблоне по-умолчанию предусмотрен только apache. Вы можете настроить nginx + php-fpm по этому уроку: ruclips.net/video/gVGfegSLg14/видео.html
@@danilovcode cпасибо большое
а yii-starter-kit получится так же раскрыть?
Да. По сути у вас два варианта:
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
Спасибо большое за видео. Если вы получаете ошибку 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
Ошибка говорит о том, что текущая версия 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
@@danilovcode класс 👍
А если прислали проект с Docker? И там не localhost.
Если там не localhost, а имя домена, то его можно прописать в hosts и открывать как будто это публичный адрес
блин, было бы лучше что бы ты показал как прописать докер с nginx и traefik что бы можно было открывать разные проекты одновременно
Хорошая идея! Попробую записать и такой урок в ближайшем будущем
Could not find package yiisoft/yii2-app-advaced with stability stable.
Какой командой запускаете установку yii?
Попробуйте по официальной инструкции: www.yiwork.com/extension/yiisoft/yii2-app-advanced/doc/guide/2.0/en/start-installation