我在我的PHP开发环境中使用Docker,并使用Docker Compose以这种方式设置我的图像:
myapp:
build: myapp/
volumes:
- ./myapp:/var/www/myapp
php:
build: php-fpm/
expose:
- 9000:9000
links:
- elasticsearch
volumes_from:
- myapp
extra_hosts:
# Maybe the problem is related to this line
- "myapp.localhost.com:127.0.0.1"
nginx:
build: nginx/
ports:
- 80:80
links:
- php
volumes_from:
- myapp
elasticsearch:
image: elasticsearch:1.7
ports:
- 9200:9200
Nginx(在其Docker文件中)配置了一个名为myapp.localhost.com
(server_name
参数)的虚拟主机,并指向/var/www/myapp
文件夹。
这一切都很好。
但这是我的问题:我的网络应用程序通过myapp.localhost.com
URL使用cURL(在PHP代码中)调用自身,通过运行此命令可以更容易地重现:
docker-compose run php curl http://myapp.localhost.com
cURL回复如下:
cURL错误7:无法连接到myapp.localhost.com端口80:拒绝连接
您对我如何调用应用网址有任何疑问吗?我的docker-compose.yml
文件中是否遗漏了一些内容?
答案 0 :(得分:1)
几个月后,我回来发布(非常简单)回答我的问题:
server_name
条目extra_hosts
文件中的docker-compose.yml
条目(不是必需的,但没用)只需使用Nginx容器名称作为主机(nginx
此处)调用服务器:
docker-compose exec php curl http://nginx