[英]how to run server using docker container?
Django服務器在localhost中運行良好。 但是,當我嘗試在docker容器上運行服務器時,使用docker-compose文件時找不到manage.py文件,即使我手動運行容器並運行服務器,它也不會出現在瀏覽器中。 我怎么解決這個問題?
因此,我在本地服務器上編寫了所有代碼測試,並使用dockerfile構建了項目的映像。
我試圖在docker容器上運行服務器,突然這無法運行。 更糟糕的是,如果我使用docker-compose來運行服務器,盡管我已經使用'docker run -it $ image_name sh'進行了檢查,但找不到manage.py文件。
這是我的項目的代碼
我是Docker的新手,也是編程的新手。 希望你能給我幫助。 謝謝!
文件結構
current directory
└─example
└─db.sqlite3
└─docker-compose.yml
└─Dockerfile
└─manage.py
└─Pipfile
└─Pipfile.lock
Docker文件
# Base image - Python version
FROM python:3.6-alpine
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Copy Pipfile
COPY Pipfile /code
COPY Pipfile.lock /code
# Install dependencies
RUN pip install pipenv
RUN pipenv install --system
# Copy files
COPY . /code/
泊塢窗,compose.yml
# docker-compose.yml
version: '3.3'
services:
web:
build: .
command: python /code/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- 8000:8000
預期結果:在網絡瀏覽器中運行服務器(例如chrome)
實際結果 :
當使用docker-compose時:出現如下錯誤:web_1 | python:無法打開文件'/code/manage.py':[Errno 2]沒有這樣的文件或目錄
當在外殼上使用'docker run -it $ image_name sh'和'python manage.py runserver'手動運行容器時:服務器正在運行,但未連接到Web瀏覽器。 (不會顯示在瀏覽器中,例如chrome'
喲在很多方面都做過同樣的事情。 您已使用COPY
命令復制了源文件,然后在docker-compose.yml文件中安裝了主機卷。 首先,您不需要卷,因為卷掛載用於持久存儲Docker容器生成和使用的數據。
以下簡化的Dockerfile和docker-compose文件將解決此問題。
# Base image - Python version
FROM python:3.6-alpine
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Copy files
COPY . /code/
# Set work directory
WORKDIR /code
# Install dependencies
RUN pip install pipenv
RUN pipenv install --system
docker-compose.yml-:
# docker-compose.yml
version: '3.3'
services:
web:
build: .
command: python ./manage.py runserver 0.0.0.0:8000
ports:
- 8000:8000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.