Docker file 搭建 Django镜像。-bash: django-admin: command not found,Invalid HTTP_HOST header:You may need

目录:

  1. 生成 Django 项目
  2. 创建 Dockerfile



生成 Django 项目

django-admin startproject demo

-bash: django-admin: command not found

这是由于django-admin 并没有添加到命令行运行路径下,个人建议 添加软连接

  • 所以先查找 django-admin的环境

    sudo find / -name django-admin
    

    在这里插入图片描述
    找到 Unix System Resource 下的django-admin,因为这里要找的是 工作环境,不是安装模块,所以避开 site-packges

  • 配置软连接

    ln /usr/local/python3/bin/django-admin /usr/bin/django-admin
    
  • OK

django-admin startproject demo
cd demo

#  因为是随意的此时所以就不需要app了。查看是否可以启动
python3 manage.py runserver 0.0.0.0:8000 

打开浏览器访问
在这里插入图片描述

Invalid HTTP_HOST header: '47.96.158.77:8000'. You may need to add '47.96.158.77' to ALLOWED_HOSTS.

无效的HTTP_HOST头:‘47.96.158.77:8000’。您可能需要向ALLOWED_HOSTS添加“47.96.158.77”。
不让我访问,很奇怪。大家看 之前的启动命令映射的端口是 0.0.0.0,他是可以所有都可以访问的。所以我们要讲 django -settings 中的 所有访问打开

  • 更改 settings

    cd demo  # 主应用
    
    vim settings.py  # 更改文件
    

    在这里插入图片描述

    ESC
    :wq  # 保存退出 
    
  • 更改后 重启服务

    python3 manage.py runserver 0.0.0.0:8000 
    

    在这里插入图片描述
    此时的Django就已经 OK 啦。


创建 Dockerfile

  1. # 注意目录是在demo下
    
    [root@linux-node1 demo] vim Dockerfile          # dockerfile内容如下,路径放到django项目根路径
    
    # demo/Dockerfile
    
    FROM python:3.6
    MAINTAINER H_sen
    RUN mkdir /code
    WORKDIR /code
    ADD . /code/
    RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    EXPOSE 8000
    CMD ["python", "manage.py", "runserver", "0:8000"]
    

  2. [root@linux-node1 demo] vim requirements.txt         # django需要安装的包,路径放到django项目根路径
    
    # requirements.txt  
    
    Django==2.0.4
    mysqlclient==1.4.6
    

  3. [root@linux-node1 demo] docker build -t dj_demo:v1 -f Dockerfile .     # 一定要注意这个 .
    
    [root@linux-node1 demo] docker run -d -p 你的IP:8000:8000 dj_demo:v1  
    
发布了91 篇原创文章 · 获赞 174 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_44685869/article/details/104738561