簡體   English   中英

如何從 docker 容器調用本地資源?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM