Php Dockerfile和yml配置
我使用docker(与nginx-docker nginx php mysql一起)作为运行php应用程序的环境。 我试图将websocket添加到我的应用程序中,但在配置Dockerfileand docker-compose.yml时遇到一些困难 我在cmd.php中有服务器文件(位置:docker nginx php mysql\www\ratchet\u chatapp\cmd.php): 我的Dockerfile(位置:docker nginx php mysql\php\Dockerfile): my docker-compose.yml(位置:docker nginx php mysql): 我试图用EXPOSE 8090配置Dockerfile并将其添加到yml中,但仍然不起作用。 如何正确更改Dockerfile和ymlPhp Dockerfile和yml配置,php,docker,Php,Docker,我使用docker(与nginx-docker nginx php mysql一起)作为运行php应用程序的环境。 我试图将websocket添加到我的应用程序中,但在配置Dockerfileand docker-compose.yml时遇到一些困难 我在cmd.php中有服务器文件(位置:docker nginx php mysql\www\ratchet\u chatapp\cmd.php): 我的Dockerfile(位置:docker nginx php mysql\php\Docker
谢谢 您的容器8090端口映射到本地主机上的9000端口,因此您应该尝试指向localhost:9000以访问容器的websocket端口,即ws://localhost:9000Hi@Ori,您的连接应该指向您的容器地址,对吗?是的。如何找到容器地址?它是您在yml上分配的IP地址,或者,您可以执行docker exec-It/bin/bash来输入容器并找到它的IP。您无法访问未使用
端口:
设置发布的任何内容;还要记住,Javascript通常在主机浏览器上运行,无法访问Docker网络。容器内部IP地址除了在一个特定的Docker配置上之外是不可用的,我会完全忽略它们(从Docker compose.yml
文件中删除它们,永远不要查找它们)。
<?php
require 'vendor/autoload.php';
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use ChatApp\Chat;
$server = IoServer::factory(
new HttpServer(
new WsServer(
new Chat()
)
),
8090
);
$server->run();
var conn = new WebSocket('ws://localhost:8090');
conn.onopen = function(e) {
console.log("Connection established!");
};
FROM php:7.3-fpm
RUN apt-get update && apt-get install -y libzip-dev libpng-dev git zip unzip libgd3 libgd-tools libxml2 libxml2-dev mariadb-client && docker-php-ext-install pdo_mysql mysqli gd soap zip
version: "3"
services:
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes:
- ./www:/var/www/html
networks:
uln:
ipv4_address: 10.6.0.2
php:
build: ./php/
expose:
- 9000
- 8090
links:
- mysql
volumes:
- ./www:/var/www/html
networks:
uln:
ipv4_address: 10.6.0.3
app:
image: php:7.3-fpm
volumes:
- ./www:/var/www/html
command: "true"
mysql:
image: mysql:5.7
ports:
- 3306:3306
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: webprog
MYSQL_USER: webprog
MYSQL_PASSWORD: webprog
networks:
uln:
ipv4_address: 10.6.0.4
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:80
links:
- mysql
environment:
PMA_HOST: mysql
networks:
uln:
ipv4_address: 10.6.0.5
networks:
uln:
ipam:
config:
- subnet: 10.6.0.0/16