Я настроил конвейер в BitBucket для автоматического развертывания моей основной ветви моего проекта в экземпляре Azure Web App.
Приложение развертывает файлы и запускает composer update
, как и ожидалось (хотя оно и предупреждает, чтоон работает как root), но php artisan migrate --force
возвращает:
Освещение \ Database \ QueryException: SQLSTATE [HY000] [1045] Доступ запрещен для пользователя 'forge'@'127.0.0.1' (с использованием пароля: НЕТ) (SQL: выберите * из таблицы information_schema.tables, где table_schema = forge и table_name = migrations)
Я уже создал файл .env
, и когда я запускаю php artisan migrate
изнутриОболочка успешно запускается, и таблицы создаются.
Наличие этого 'forge' является пользователем по умолчанию в database.php
Я полагаю .env
не загружается, когда команда запускается из сценария развертывания.
Есть ли что-то очевидное, что я упустил, чтобы вызвать эту проблему, или я должен как-то настроить его, чтобы он не запускался от имени root?Я мог бы заменить детали базы данных в database.php
, но чувствую, что это неправильно.
редактировать содержимое
.env (некоторые данные заменяются на ********):
APP_NAME=Laravel
APP_ENV=local
APP_KEY=********
APP_DEBUG=true
APP_URL=********
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=********
DB_DATABASE=********
DB_USERNAME=********
DB_PASSWORD=********
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
edit 2
Я понимаю, что еще не опубликовал свой bitbucket-pipelines.yml
файл:
image: php:7.2-fpm
pipelines:
branches:
master:
- step:
script:
- apt-get update && apt-get install -qy git curl libmcrypt-dev mysql-client && apt-get install -qy unzip git
- yes | pecl install mcrypt-1.0.1
- docker-php-ext-install pdo_mysql
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer update
- php artisan migrate --force
- php artisan serve --port=80 &
- sleep 5
- curl -vk http://localhost:80
deployment: staging
services:
- mysql
definitions:
services:
mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: '******'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_USER: '******'
MYSQL_PASSWORD: '******'
MYSQL_PORT: '******'
У меня также есть .env.pipelines
файл:
APP_ENV=local
APP_KEY=******
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=******
DB_USERNAME=******
DB_PASSWORD=******