我需要从另一个容器中压缩API。容器1称为nginx容器2称为fpm
我需要能够击打到我的fpm容器并卷起nginx容器。
配置:
#docker-compose.yaml
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但是码头组合失败了:
错误:对于apiwip_fpm_1,无法为服务fpm创建容器: address:"nginx“中的无效IP地址
我见过一些使用docker网络配置的人的例子,但似乎只是解析一个地址。
我如何解析/评估容器的IP地址而不仅仅是字面上传递它?
发布于 2020-02-02 13:31:27
在默认网络中添加网络别名。
version: "3.7"
services:
nginx:
# ...
networks:
default:
aliases:
- example.local
browser-sync:
# ...
depends_on:
- nginx
command: "browser-sync start --proxy http://example.local"发布于 2018-10-02 09:42:54
services:
nginx:
build:
context: .
dockerfile: ./docker/nginx/Dockerfile
volumes:
- ./docker/nginx/conf/dev/api.conf:/etc/nginx/conf.d/default.conf
ports:
- 8080:80
networks:
my_network:
aliases:
- myapi.docker
- docker_my_network
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
networks:
- my_network
networks:
my_network:
driver: bridge@edward让我知道这个解决方案是否适合你
编辑: Jack_Hu是对的,我删除了extra_hosts。网络别名就够了。
发布于 2019-05-03 11:36:18
我用links而不是extra_hosts来解决这类问题。
在这种情况下,只需设置link alias就可以帮助您。
服务fpm设置
links
- nginx:myapi.docker请参阅docker-撰写链接文档,别名可以是出现在代码中的域。
https://stackoverflow.com/questions/47577490
复制相似问题