簡體   English   中英

無法訪問 docker-compose 中的站點

[英]Unable to access site in docker-compose

我一直在使用: docker build -t devstack.

docker run --rm -p 443:443 -it -v ~/code:/code devstack

到目前為止,這對我來說一直很好。 我已經能夠通過瀏覽器按預期訪問該站點。 我將我的主機文件設置為將 devstack.com 指向 127.0.0.1 並且站點加載良好。 現在我正在嘗試使用 docker-compose,這樣我就可以使用那里的一些功能來更輕松地與 AWS 連接。

services:
  web:
    build:
      context: .
    network_mode: "bridge"
    ports:
      - "443"
      - "80"
    volumes:
      - ~/code:/code
    image: devstack:latest 

所以我運行docker-compose build ,它為我提供了 Dockerfile 中熟悉的構建內容。 然后我運行docker-compose run web這將我放入啟動 apache 的 VM (目前手動執行),點擊top以驗證它是否正在運行,然后跟蹤日志文件。 但是當我嘗試在瀏覽器中訪問該站點時,我得到: devstack.com refused to connect. 並且 apache 日志文件中沒有日志,所以它甚至沒有到達 apache。 所以關於端口的一些事情並沒有對我開放。 知道我需要改變什么來完成這項工作嗎?

編輯:更新文件。 還是同樣的問題:

version: "3"
services:
  web:
    build:
      context: .
#    Same issue with both of these:
#    network_mode: "bridge"
#    network_mode: "host"
    ports:
      - "443:443"
      - "80:80"
    volumes:
      - ~/code:/code
    tty: true

這就是我為使其正常工作所做的。 我使用了他們文檔中顯示的示例項目 docker-compose,它在端口 5000 上運行了一個測試應用程序。這很有效,所以我知道它可以完成。

我更新了我的 docker-compose.yml,使其與測試項目中的非常相似。 所以它現在看起來像這樣:

version: "3"
services:
  web:
    build: .
    ports:
      - "443:443"
      - "80:80"
    volumes:
      - ~/code:/code

然后我創建了一個 entry.sh 文件,它將啟動 apache,並將其添加到我的 Dockerfile 中:

# copy the entry file which will start apache
COPY entry.sh entry.sh
RUN chmod +x entry.sh

# start apache
CMD ./entry.sh; tail -f /var/log/apache2/*.log

所以現在當我做docker-compose up ,它將啟動 apache 並尾隨 apache 日志文件。 所以我立即看到 apache 日志文件 output 到終端。 然后我就可以訪問該站點了。 基本上問題只是VM退出。 這是我能找到的唯一方法來阻止它退出而不在 docker-compose 中執行 tty=true,雖然它阻止它退出,但不會發布端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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