Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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 Dockerfile和yml配置_Php_Docker - Fatal编程技术网

Php Dockerfile和yml配置

Php 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

我使用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和yml


谢谢

您的容器8090端口映射到本地主机上的9000端口,因此您应该尝试指向localhost:9000以访问容器的websocket端口,即ws://localhost:9000

Hi@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