![](/img/trans.png)
[英]'docker-compose run web' on Django in Docker container doesn't run website at localhost
[英]docker-compose doesn't mount volumes correct for django container
在 Windows 10 上運行 Docker 和 WSL 2 Ubuntu。 我有以下Dockerfile
:
FROM ubuntu
#base directory
ENV HOME /root
#subdirectory name for the REST project
ENV PROJECT_NAME django_project
#subdirectory name of the users app
ENV APP_NAME users
#set the working directory
WORKDIR $HOME
#install Python 3, the Django REST framework and the Cassandra Python driver
RUN apt-get update
RUN apt -y install python3-pip 2> /dev/null
RUN pip3 install djangorestframework
RUN pip3 install cassandra-driver
#initialize the project (blank project) and creates a folder called $PROJECT_NAME
#with manager.py on its root directory
RUN django-admin startproject $PROJECT_NAME .
#install an app in the project and create a folder named after it
RUN python3 manage.py startapp $APP_NAME
ENV CASSANDRA_SEEDS cas1
ENTRYPOINT ["python3","manage.py", "runserver", "0.0.0.0:8000"]
我使用docker build -t django-img.
然后我有以下.yaml
:
version: '3'
services:
django_c:
container_name: django_c
image: django-img
environment:
- CASSANDRA_SEEDS='cas1'
ports:
- '8000:8000'
volumes:
- /mnt/c/Users/claud/docker-env/django/django_project:/django_project
當我在django-project文件夾中運行docker-compose up -d
時(.yml 和 Dockerfile 在那里),我讓容器運行,但我在主機中看不到容器中的任何文件。 但是,如果我在容器中運行ls
,我會看到所有文件都在那里:
我應該如何使用主機中的編輯器來編輯容器文件?
ps:我已經用另一個容器測試了卷斜杠(“/”),它們工作正常,因為我使用的是 WSL。
添加這里我的容器文件夾的內容使用相對路徑,我試過了
volumes:
- /mnt/c/Users/claud/docker-env/django/django_project:/root/django_project
我認為問題在於您的卷掛載是指絕對路徑/django_project
,但是您在Dockerfile中指定WORKDIR $HOME
是/root
。 另一個線索是,當您使用相對路徑在容器中ls -la./django_project
時,您會看到您的文件。
我敢打賭你可以通過更新你的docker-compose.yml django_c
服務定義來指定/root/django_project
作為你的卷安裝來解決這個問題:
volumes:
- /mnt/c/Users/claud/docker-env/django/django_project:/root/django_project
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.