当前位置: 首页 > 知识库问答 >
问题:

无法在Docker中启动Laravel web套接字

谢鸿羲
2023-03-14

这是我第一次和docker合作。我有一个laravel web套接字网站(php laravel postgresql),需要放入一个容器。如果我只是执行命令(没有docker):

php工匠服务

php artisan WebSocket:服务

然后它成功地工作:

  • Websockets仪表板http://127.0.0.1:8000/laravel-WebSocket

我做了一个docker安装以下指令https://www.twilio.com/blog/get-started-docker-laravel与微小的变化(增加6001端口docker-compose.yml)。

现在我有可用的容器:

  • Apache默认页面http://192.168.1.61/
  • 拉威尔的默认页面http://192.168.1.61:8080/
  • 如果运行php artisan websockets:serve,我会在控制台中看到套接字服务器响应端口6001上的客户端连接,但不响应发送消息

不可用:

  • 网络插座仪表板http://192.168.1.61:8080/laravel-websockets
  • 发送WebSocket服务器的POST消息http://192.168.1.61:8080/telephonyCall

请告诉我我做错了什么?

目录结构:

docker 
 apache
   ¬ default.conf
 databases
 php
   ¬ Dockerfile
 src
   ¬ (here is a copy of the working site)
 ¬ docker-compose.yml

default.conf

<VirtualHost *:80>
   ServerName WebSocketServer
   DocumentRoot /var/www/WebSocketServer/public
   <Directory /var/www/WebSocketServer>
       AllowOverride All
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Dockerfile

FROM php:8.0-apache

RUN apt update && apt install -y zlib1g-dev g++ libicu-dev zip libzip-dev zip libpq-dev \
    && docker-php-ext-install intl opcache pdo pgsql pdo_pgsql \
    && pecl install apcu \
    && docker-php-ext-enable apcu \
    && docker-php-ext-configure zip \
    && docker-php-ext-install zip

WORKDIR /var/www/WebSocketServer

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

docker撰写。yml

version: '3.8'

services:
    database:
        image: postgres
        container_name: database
        restart: unless-stopped
        environment:
            POSTGRES_PASSWORD: 1111111
            POSTGRES_DB: websocket
        volumes:
            - ./postgres-data:/var/lib/postgresql/data
        ports:
            - '5432:5432'

    php-apache:
        container_name: php-apache
        build:
            context: ./php
        ports:
            - '8080:80'
            - '8000:8000'
            - '6001:6001'
        volumes:
            - ./src:/var/www/WebSocketServer
            - ./apache/default.conf:/etc/apache2/sites-enabled/000-default.conf
        depends_on:
            - database

共有1个答案

陈季
2023-03-14

如果你运行命令

php artisan serve

然后从localhost开始。如果

php artisan serve --host = 192.168.1.61

它可以从外部访问(这里192.168.1.61是我们运行的机器的ip地址)。但是容器使用自己的网络和192.168。1.61因为它“在网络之外”,所以工匠无法启动。

翻页http://192.168.1.61:8080/laravel-WebSocket可用,您需要按以下方式运行:

php artisan serve --host = 0.0.0.0
 类似资料:
  • 在 Windows 上执行命令将返回以下结果: 运行诊断程序会产生以下结果:

  • 我在Docker中运行spring boot应用程序时遇到了一点问题。 堆栈:Maven3+,spring boot(jpa/rest/jetty)-mysql-deploy in docker 所以,我的pom文件里有

  • 问题内容: 我一直在尝试 在Ubuntu 16.04上 使用 Docker(1.10), 但安装失败,因为 Docker Service无法启动 。我已经尝试通过 docker.io和docker -engine apt软件包安装 docker ,但是它不起作用。 我的 主机信息 是: 这里是 : 这是 这是 ./check- config.sh 输出: 如果有人可以帮助我,我将非常感激 问题答案

  • 问题内容: 我收到此错误: 当我在代码中执行以下操作时: 真的无法简单得多,但是错误是致命的。有任何想法吗? 问题答案: 我最终完成了这项工作,删除了NuGet在安装WebDriver时添加的所有软件包子文件夹,并决定手动添加它们。创建一个“ lib”文件夹,然后将硒二进制文件解压缩到该文件夹​​中。然后添加对所有二进制文件的引用。现在看来还好。

  • 问题内容: 码头工人给我一个困难时期。我按照以下说明进行操作,以便在运行由strato.de托管的Ubuntu 14.04的虚拟服务器上安装docker。 执行此行直接将我带入此错误消息: 安装完成后,我安装了上述两个软件包。现在我的问题是我无法让docker运行。 结果是: 结果是 和 结果是 有人对缺少哪些依赖项有任何线索吗?还有什么可能出问题了?码头工人是否提供任何日志? 我正在来回寻找解决

  • 我想用nifi和码头工人一起,但没有用。我有以下docker-file 我收到以下错误