簡體   English   中英

在docker-compose中運行Django

[英]Running Django in docker-compose

我在docker容器中啟動django項目時遇到問題。 我的Dockerfile如下所示:

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000

requirements.txt包含成功安裝django的單行Django

docker-compose.yml具有以下內容:

version: '2'
services:
  web:
    build: ./web
    command: python manage.py runserver 0.0.0.0:8000
    ports:
     - "8000:8000"
    volumes:
     - ./web:/code

要創建一個我打電話的項目:

docker-compose run web python django-admin.py startproject web .

與以下消息崩潰:

python: can't open file 'django-admin.py': [Errno 2] No such file or directory

還有這個

docker-compose run web django-admin.py startproject web .

崩潰了

ERROR: Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"django-admin.py\": executable file not found in $PATH"

在我看來,執行這樣的容器時$PATH中有一個錯誤。 當我使用交互模式-it ,我可以從此文件夾中調用django-admin PATH設置不正確還是我在這里做錯了什么? Dockerfile位於web目錄中。

編輯:在評論中提出建議后,我嘗試使用完整路徑運行django-admin

root@935ca5543589:/code# which django-admin
/usr/local/bin/django-admin

仍然沒有變化:

docker-compose run web /usr/local/bin/django-admin startproject web .
ERROR: Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/usr/local/bin/django-admin\": stat /usr/local/bin/django-admin: no such file or directory"

答案其實很簡單。 當我首先運行項目時,我的Dockerfile出錯了。 更改Dockerfile后, Dockerfile docker-compose沒有自動重建圖像,這是我假設的。 即使使用docker build進行重建也無法解決這個問題。 只有在刪除整個圖像后,才會強制進行重建並給出正確的結果。

我跑了什么:

docker-compose run app djando-admin.py startproject app

輸出:

sh:djando-admin.py:找不到

解:

sudo docker-compose run app django-admin startproject app .

嘗試使用sudo

暫無
暫無

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

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