[英]Failure to run Django app with Docker compose on the browser
我正在處理一個 Django 項目,並且我正在使用 Docker Compose 來設置和運行一個簡單的 Django/PostgreSQL 應用程序。 問題是當我嘗試運行命令“docker-compose up”時,終端給我 URL 以在瀏覽器上運行,但瀏覽器中沒有任何反應。 如果你有任何想法,你能幫助我嗎,我將非常感激。
Dockerfile:
FROM python:3.7-alpine
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
Docker-compose.yml:
version: '3'
services:
web:
build: .
command: python src/products_projects/manage.py runserver 192.168.99.100:8000
volumes:
- .:/code
ports:
- "8000:8000"
redis:
image: "redis:alpine"
Docker終端:
## .
## ## ## ==
## ## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\_______/
docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com
$ docker-machine ip
192.168.99.100
終端中的結果:
web_1 | Watching for file changes with StatReloader
web_1 | Performing system checks...
web_1 |
web_1 | System check identified no issues (0 silenced).
web_1 | August 31, 2020 - 11:44:23
web_1 | Django version 3.1, using settings 'products_projects.settings'
web_1 | Starting development server at http://192.168.99.100:8000/
web_1 | Quit the server with CONTROL-C.
web_1 | Error: That IP address can't be assigned to.
productsrestapidocker_web_1 exited with code 1
使用您共享的撰寫文件部署的容器正在使用 docker-bridge.network 並擁有自己的 IP 地址。
python src/products_projects/manage.py runserver
是從容器角度執行的,它有自己的 IP 地址,不同於 docker-machine IP 地址。
runserver
命令在本地機器上啟動一個輕量級開發 Web 服務器(在本例中是在容器內)。 默認情況下,服務器在 IP 地址 127.0.0.1 上的端口 8000 上運行。
ports:
您在撰寫文件中使用的選項會創建從 docker 機器到容器的 DNAT 規則。 這意味着您可以啟動 Django web 服務器而無需指定 IP 參數和端口,或者如果這不起作用,您可以嘗試將192.168.99.100:8000
替換為0.0.0.0:8000
。
然后,該站點應該可以在瀏覽器中訪問192.168.99.100:8000
,請求被轉換為端口 8000 上的容器 IP 地址,Web 服務器正在偵聽和接受連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.