#php #laravel #docker #laravel-sail
Вопрос:
При запуске
sudo APP_PORT=3001 ./vendor/bin/sail up
В терминале я ожидаю увидеть заставку laravel по умолчанию http://localhost:3001
. Но вместо этого я вижу сообщение об ошибке This page isn’t workinglocalhost didn’t send any data. ERR_EMPTY_RESPONSE
.
Я запускаю laravel 8 с sail в Windows 10, используя WSL(ubuntu).
Я вижу, что контейнеры БД и приложений работают нормально с рабочего стола docker(оба зеленые).
Кто-нибудь знает, как это исправить?
докер-compose.yml
# For more information: https://laravel.com/docs/sail
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
ports:
- '${APP_PORT:-80}:8000'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mariadb
mariadb:
image: 'mariadb:10'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmariadb:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
networks:
sail:
driver: bridge
volumes:
sailmariadb:
driver: local
Комментарии:
1. Вы пробовали localhost:8000?
2. @tirtakeniten да. Та же ошибка
3. Вы уверены, что APP_PORT переведен? Может быть, попробовать «3001», жестко закодированный в файле docker-compose?
Ответ №1:
Как сказал @BertC, я изменил строку портов в docker-compose.yml на «9192:80» и запустил sail up
снова, и это сработало. Спасибо @BertC