![](/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.