php - 将 Laravel Websocker 与 docker/docker-compose.yml 一起使用不起作用
问题描述
我正在开发一个 Laravel 应用程序。我正在尝试在我的应用程序中使用 Laravel Websocket,https: //docs.beyondco.de/laravel-websockets 。我正在使用 Docker/docker-compose.yml。由于 Laravel Websocket 在端口 6001 上本地运行,因此我在将其与 docker-compose 集成时遇到了问题。搜索解决方案我找到了这个链接,https://github.com/laradock/laradock/issues/2002。我试过但没有用。这就是我所做的。
我在项目根目录下创建了一个名为 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'?)
出了什么问题,我该如何解决?如何在 docker-compose 中使用 Laravel Web Socket?
我尝试从“端口”更改为“端口”,然后收到以下错误消息。
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 是错误的。Dockerfile 必须以文档中解释FROM <image>
的指令开头。在您的情况下,运行现有图像可能就足够了,避免使用整个 Dockerfile 内容:php:<version>-cli
workspace:
image: php:7.3-cli
command: ["php", "artisan", "websockets:serve"]
当然,您还需要添加包含应用程序代码和合适网络的卷。如果你在你的服务前面添加一个反向代理,比如 Nginx,你不需要ports
在你的workspace
任何一个上导出。服务可以访问其他服务,只要它们在同一个网络中。
推荐阅读
- reactjs - 如何解决“react-native start”上的错误
- javascript - 正则表达式没有返回一致的结果
- django - Django2:如何与 localhost:8000 和子域 analysis.localhost:8000 共享“request.user”?
- python - 文本分析:使用python查找列中最常见的单词
- php - PHP POST 变量在刷新后恢复其值
- c++ - weak_ptr 持有哪些变量?
- java - Java String hashCode是如何在对象上计算的
- c# - EF Core 3.0 .Include() 链比 2.2 长约 5-10 倍
- python - 如何在exe窗口中运行python
- c++ - 标准::向量
::assign 使用子范围有效吗?