У меня есть приложение laravel, которое я разрабатываю локально, используя docker для создания контейнеров.
Это работало месяцами, я не разрабатывал приложение последние 2 месяца, но сегодня, когда запускаю контейнерыЯ больше не могу общаться от экземпляра php до экземпляра базы данных.Я могу подключиться к серверу, используя свой локальный адрес на машине, но когда я пытаюсь что-то сделать в контейнере php (например, пользователь входит в приложение), он обнаруживает отказ в соединении.
Итак, подведем итог,Я могу выполнить перенос php artisan со своего ноутбука, и таблицы будут созданы, затем я просматриваю сайт (localhost: 8080), и на экране входа в систему появляется сообщение, затем я пытаюсь войти в систему и получить следующую ошибку:
Освещение \ Database \ QueryException (2002) SQLSTATE [HY000] [2002] Соединение отклонено (SQL: выберите * из users
, где email
= test@email.com и users
. deleted_at
- нулевой предел 1)
Я включил все свои файлы ниже
.env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=**REMOVED**
APP_DEBUG=true
APP_URL=https://localhost:8443
APP_CDN=true
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33061
DB_DATABASE=dockerApp
DB_USERNAME=root
DB_PASSWORD=secret
docker-compose.yml
version: '2'
services:
nginx:
image: nginx:1.13.12
ports:
- "8443:443"
- "8080:80"
volumes:
- ./:/var/www
- ./nginxconf:/etc/nginx/conf.d
- ./ssl-cert:/etc/nginx/certs
working_dir: /var/www
links:
- php
php:
build:
context: ./
dockerfile: app.docker
volumes:
- ./:/var/www
links:
- db
environment:
- "DB_PORT=3306"
- "DB_HOST=db"
db:
image: mysql:5.7
environment:
- "MYSQL_ROOT_PASSWORD=secret"
- "MYSQL_DATABASE=dockerApp"
ports:
- "33061:3306"
app.docker
FROM php:7-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install pdo_mysql \
&& pecl install mcrypt-1.0.1 docker-php-ext-enable mcrypt
WORKDIR /var/www
vhost.conf
server {
listen 80;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~\.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
server {
listen 443;
ssl on;
root /var/www/public;
ssl_certificate /var/www/ssl-cert/server.crt;
ssl_certificate_key /var/www/ssl-cert/server.key;
ssl_password_file /var/www/ssl-cert/passwords.txt;
ssl_client_certificate /var/www/ssl-cert/ca.crt;
ssl_verify_client on;
}