![](/img/trans.png)
[英]How to make docker container built with php:7.2.21-fpm install debian packages from local debian mirror?
[英]How to call a local ressource from a docker container?
我使用“docker-compose.yml”构建了:Apache、Php7.3 和 Postgresql 图像。
一切正常,但是当我调用本地照片时,我收到一条警告消息并且照片没有出现。
这是错误消息:警告:getimagesize(https://localhost:80/tofs.domain.com/photo.php?id=1):无法打开 stream:无法分配请求的地址。
当我将 'file_get_contents' function 与 'localhost' 一起使用时,我会收到相同的消息。
注意:调用外部资源适用于这些功能。
我提请您注意:我已经创建了一个网络。 ~ 所有容器共享同一个网络(通过“docker-compose.yml”)。 ~
但就我而言,我认为使用的函数(如:file_get_contents、getimagesize、...等)指的是我的主机的“localhost/127.0.0.”1,而不是容器的网络。
那么,我应该怎么做才能解决这个问题呢?
谢谢。
使用 file_get_contents 您将从 PHP 容器获取图像到 web 服务器容器
version: "3.7"
services:
webserver:
image: nginx:alpine
working_dir: /api
depends_on:
- php-fpm
volumes:
- ./api:/api
php-fpm:
build: docker/php-fpm
working_dir: /api
volumes:
- ./backend:/backend
Webserver 容器需要具有 PHP-FPM 容器的depends_on
(从 PHP-FPM 到 webserver 的链接也应该可以工作)。
现在在 PHP 容器中,您可以 ping http://webserver
,您应该会看到您的应用程序主页。
我不知道你为什么要这样做:
localhost/127.0.0.1
https://localhost:80/tofs.domain.com/photo.php?id=1
您不能将域添加到...域:)
在我的 docker-compose.yml 示例中,您的本地主机是网络服务器,所以这应该可以工作: https://webserver/photo.php?id=1
我知道,我使用“links”而不是“depends_on”来匹配“php-FPM”和“apache2.4”,效果很好。
根据“localhost/127.0.0.1”,我的意思是“localhost”或“127.0.0.1”。 并且根据“https://localhost:80/tofs.domain.com/photo.php?id=1”,=>“tofs.domain.com”是一个用于测试的目录,而不是一个域:)。
当我之前尝试过您的解决方案时,服务器没有验证 URL,因为没有SSL 证书。
我已经为“localhost”创建了SSL 证书,而不是之前测试过的服务名称......
我必须做什么?
谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.