Laravel を実行している Docker 環境があり、laravel-websockets を機能させたいと考えています。
私がここを訪れたとき:
http://localhost:8000/laravel-websockets
次のエラーが表示されます。
開発ツールは次のことを教えてくれます:
WebSocket connection to 'ws://localhost:6001/app/local?protocol=7&client=js&version=4.3.1&flash=false' failed: Connection closed before receiving a handshake response
次の docker-compose.yaml があります。
version: "3.8"
services:
server:
build:
context: .
dockerfile: dockerfiles/nginx.dockerfile
ports:
- "8000:80"
- "6001:6001"
volumes:
- ./src:/var/www/html
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- app
app:
build:
context: .
dockerfile: dockerfiles/php.dockerfile
volumes:
- ./src:/var/www/html:delegated
私の php.dockerfile は次のようになります。
FROM php:8.0-fpm-alpine
USER root
WORKDIR /var/www/html
COPY src .
RUN apk --no-cache add libxml2-dev
RUN docker-php-ext-install soap
RUN docker-php-ext-install pdo pdo_mysql
RUN echo 'max_execution_time = 120' >> /usr/local/etc/php/conf.d/docker-php-maxexectime.ini;
EXPOSE 6001
私は決して専門家ではないので、明らかな何かを見落としている可能性があります。どんな助けでも感謝します。
============
編集:追加情報
ローカルにセットアップされています:
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => false,
'host' => '127.0.0.1',
'port' => 6001,
'scheme' => 'http'
],
],
そして、私は実行しました:
php artisan websockets:serve