我需要从另一个容器中 curl 我的API。
容器1称为nginx
容器2称为fpm
我需要能够扑向FPM容器并 curl nginx容器。
配置:
services:
nginx:
build:
context: .
dockerfile: ./docker/nginx/Dockerfile
volumes:
- ./docker/nginx/conf/dev/api.conf:/etc/nginx/conf.d/default.conf
ports:
- 8080:80
links:
- fpm
fpm:
build:
context: .
dockerfile: ./docker/fpm/Dockerfile
volumes:
- .:/var/www/html
- ./docker/fpm/conf/dev/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
- ./docker/fpm/conf/dev/api.ini:/usr/local/etc/php/conf.d/api.ini
env_file:
- ./docker/mysql/mysql.env
- ./docker/fpm/conf/dev/fpm.env
links:
- mysql
shm_size: 256M
extra_hosts:
- myapi.docker:nginx
我最初的想法是将其打在
extra_hosts
选项中,例如:
extra_hosts:
- myapi.docker:nginx
但是docker-compose up失败了:
ERROR: for apiwip_fpm_1 Cannot create container for service fpm: invalid IP address in add-host: "nginx"
我已经看到了一些使用docker网络配置的人的例子,但是仅仅解析地址似乎是最重要的。
我如何解析/评估容器的IP地址,而不是直接通过容器传递它?
请您参考如下方法:
在默认网络中添加网络别名。
version: "3.7"
services:
nginx:
# ...
networks:
default:
aliases:
- example.local
browser-sync:
# ...
depends_on:
- nginx
command: "browser-sync start --proxy http://example.local"