docker 在一个 php 容器上有两个独立的 php-服务

docker with two separated php-services on one php container

我有 docker-compose.yml 内容:

nginx:
build: ./nginx/
ports:
    - 80:80
links:
    - php
volumes:
    - ./code:/var/www/
    - ./nginx/site.local.conf:/etc/nginx/conf.d/site.local.conf
    - ./nginx/api.local.conf:/etc/nginx/conf.d/api.local.conf
php:
    build: ./php/
    expose:
        - 9000
    volumes:
        - ./code/cms:/var/www/site
        - ./code/www:/var/www/api

在我的本地机器上,我可以将所有主机分开 site.local & api.local

但我有一个问题无法解决:

php 请求从 site.local 到 api.local,所以我得到这样的错误:

cURL 错误 6:无法解析主机:api.local

有人能帮帮我吗?谢谢。

我的问题有答案了!

version: "2"

networks:
    lan_0:
        driver: bridge
        ipam:
            driver: default
            config:
                - subnet: 172.19.0.0/24
                  gateway: 172.19.0.21

services:
    nginx:
        build: ./nginx/
        ports:
            - 80:80
            - 443:443
        links:
            - php
        volumes:
            - ./code:/var/www/
        networks:
            lan_0:
                ipv4_address: 172.19.0.22
    php:
        build: ./php/
        expose:
            - 9000
        volumes:
            - ./code:/var/www
        extra_hosts:
            - "api.local:172.19.0.22"
            - "site.local:172.19.0.22"
        networks:
            lan_0:
                ipv4_address: 172.19.0.23

这就是示例,如何在一个 php 容器中通信两个 Web 应用程序。