我正在尝试制作一个在docker容器中运行的Django app的简单示例。
使用此图片https://hub.docker.com/_/django/ 只是为了简单。请不要告诉我,我不应该在生产中使用它:)应用程序非常简单,我可以使用非常基本的Django服务器。
所以,问题我在尝试运行容器图片时总是遇到错误
C:\Users\slipo\PycharmProjects\simple_blog>docker run -p 8000:8000 my-blog
python: can't open file './manage.py runserver 0.0.0.0:8000 --settings=mysite.settings.prod': [Errno 2] No such file or directory
但是,./manage.py
和mysite.settings.prod
都明确存在于容器中。
容器创建日志显示文件存在:
Step 7 : RUN ls -a
---> Running in 932ed2ad3e4c
.
..
.idea
Dockerfile
blog
manage.py
mysite
requirements.txt
templates
---> e7f938c1cbf2
Removing intermediate container 932ed2ad3e4c
Step 8 : CMD python ./manage.py runserver 0.0.0.0:8000 --settings=mysite.settings.prod
---> Running in f99bcafbc269
---> aca534e9ccb6
Removing intermediate container f99bcafbc269
Successfully built aca534e9ccb6
Dockerfile:
FROM django
EXPOSE 8000
ADD . /simple_blog
WORKDIR /simple_blog
RUN pip install -r requirements.txt
RUN pip install django-tinymce
RUN ls -a
CMD [ "python", "./manage.py runserver 0.0.0.0:8000 --settings=mysite.settings.prod" ]
谢谢。
答案 0 :(得分:11)
无法打开文件'./manage.py runserver 0.0.0.0:8000 --settings = mysite.settings.prod'
这告诉你它将整个字符串视为单个文件名。
我认为这样的事情有效:
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8000", "--settings=mysite.settings.prod" ]
答案 1 :(得分:1)
尝试执行此代码。
CMD [ "python", "../manage.py runserver 0.0.0.0:8080 --settings=my_site.settings.prd"