Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将Laravel Websocker与docker/docker-compose.yml一起使用不起作用_Php_Laravel_Docker_Websocket_Docker Compose - Fatal编程技术网

Php 将Laravel Websocker与docker/docker-compose.yml一起使用不起作用

Php 将Laravel Websocker与docker/docker-compose.yml一起使用不起作用,php,laravel,docker,websocket,docker-compose,Php,Laravel,Docker,Websocket,Docker Compose,我正在开发一个Laravel应用程序。我正在尝试在我的应用程序中使用Laravel Websocket。我正在使用Docker/Docker-compose.yml。由于Laravel Websocket在端口6001上本地运行,因此我在将其与docker compose集成时遇到问题。搜索解决方案我找到了此链接。我试过了,但没用。这就是我所做的 我在项目根目录下创建了一个名为workspace的文件夹。在那个文件夹中,我创建了一个名为Dockerfile的文件 这是Dockerfile的内容

我正在开发一个Laravel应用程序。我正在尝试在我的应用程序中使用Laravel Websocket。我正在使用Docker/Docker-compose.yml。由于Laravel Websocket在端口6001上本地运行,因此我在将其与docker compose集成时遇到问题。搜索解决方案我找到了此链接。我试过了,但没用。这就是我所做的

我在项目根目录下创建了一个名为workspace的文件夹。在那个文件夹中,我创建了一个名为Dockerfile的文件

这是Dockerfile的内容

EXPOSE 6001
在docker-compose.yml文件中,我添加了此内容

workspace:
    port:
      - 6001:6001
我的docker-compose.yml文件如下所示

version: "3"
services:
  workspace:
    port:
      - 6001:6001
  apache:
    container_name: web_one_apache
    image: webdevops/apache:ubuntu-16.04
    environment:
      WEB_DOCUMENT_ROOT: /var/www/public
      WEB_ALIAS_DOMAIN: web-one.localhost
      WEB_PHP_SOCKET: php-fpm:9000
    volumes: # Only shared dirs to apache (to be served)
      - ./public:/var/www/public:cached
      - ./storage:/var/www/storage:cached
    networks:
      - web-one-network
    ports:
      - "80:80"
      - "443:443"
  php-fpm:
    container_name: web-one-php
    image: php-fpm-laravel:7.2-minimal
    volumes:
      - ./:/var/www/
      - ./ci:/var/www/ci:cached
      - ./vendor:/var/www/vendor:delegated
      - ./storage:/var/www/storage:delegated
      - ./node_modules:/var/www/node_modules:cached
      - ~/.ssh:/root/.ssh:cached
      - ~/.composer/cache:/root/.composer/cache:delegated
    networks:
      - web-one-network
当我运行“docker compose up--build-d”时,它给出了以下错误

ERROR: The Compose file './docker-compose.yml' is invalid because:
Unsupported config option for services.workspace: 'port' (did you mean 'ports'?)
什么地方出了问题,我该如何解决?如何将Laravel Web Socket与docker compose一起使用

我尝试从“端口”更改为“端口”,但收到了以下错误消息

ERROR: The Compose file is invalid because:
Service workspace has neither an image nor a build context specified. At least one must be provided.

你的文件错了。Dockerfile必须以
FROM
指令作为开头。在您的情况下,运行一个现有的
php:-cli
映像就足够了,避免了整个Dockerfile内容:

workspace:
    image: php:7.3-cli
    command: ["php", "artisan", "websockets:serve"]

当然,您还需要添加一个包含应用程序代码和合适网络的卷。如果您在服务前面添加一个反向代理,如Nginx,您也不需要导出
工作区
上的
端口
。服务可以访问其他服务,只要它们在同一网络中。

您是否尝试将第四行的“端口”更新为“端口”?您好@AhmedAtoui,我刚刚更新了问题,请查看。