SimpleMVC-example Настройка конфигурации для работы в Docker контейнере
Primary tabs
Перед выполнением следующих действий необходимо выполнить настройку конфигурации docker-контейнера согласно статье docker Пример докеризации проекта SimpleMVC-example.
Далее добавить в папку проекта application/config файл web-local.php со следующим содержимым:
$config = [ 'core' => [ 'db' => [ 'dns' => 'mysql:host=smvc-docker_db;dbname=smvc-docker_db', 'username' => 'smvc-docker_user', 'password' => 'smvc-docker_password' ] ] ]; return $config;
в соответствии с конфигурацией docker-compose.yml контейнера smvc-docker_db.
В строке 4 конфигурации web-local.php можно указать docker-хост в формате IPv4. Для этого необходимо ввести команду в терминале после успешной сборки (команда make docker.rebuild.all):
docker network inspect smvc_network
Отобразится конфигурация сети smvc_network (из docker-compose.yml). По ключу "Containers" в списке из трех контейнеров выбираем тот, у которого "Name": "smvc-docker_db", копируем значение "IPv4Address" до слеша.
В моем случае строка 4 файла application/config/web-local.php может иметь вид:
'dns' => 'mysql:host=172.31.0.2;dbname=smvc-docker_db',
После запуска контейнера командой make docker.start.all (или make docker.restart.all или make docker.rebuild.all) необходимо установить зависимости из файла composer.json командой make composer.install.
Далее добавить файл дампа базы данных в папку input в корне проекта и назвать его smvc.sql; выполнить команду make insert.dump для записи дампа в БД smvc-docker_db.
Сайт станет доступен по адресу "http://smvc.docker.loc:21212", где "smvc.docker.loc" можно заменить на "localhost" и "127.0.0.1". Возможна ошибка при открытии главной страницы сайта вида:
Fatal error: Uncaught Exception: Can't create directory /var/www/web/assets/405aa718a9 recursivly! in /var/www/vendor/it-for-free/rusphp/src/File/Directory/Directory.php:50 Stack trace: #0 /var/www/vendor/it-for-free/php-simple-assets/src/SimpleAsset.php(75)
для устранения которой необходимо выполнить команду make grant.assets, чтобы добавить права на запись в папку web/assets. Остановка контейнера: make docker.stop.all.
- Log in to post comments
- 110 reads