上线文档
在项目的根目录下,使用pip freeze > requirements.txt自动整合这个项目所需要的各种包到requirement.txt里面
ps:最好在pycharm的控制台中使用,在cmd中使用会有多余的包
这个命令可能会导错包,可以安装pip install pipreqs,
在项目根目录下执行pipreqs ./
如果报错执行pipreqs ./ --encoding=utf-8
pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
换个国内下载源
setting.py配置
ALLOWED_HOSTS = ['*']
Dockerfile文件
FROM python:3.8.4
RUN mkdir -p /app
WORKDIR /app
COPY pip.conf /root/.pip/pip.conf
COPY requirements.txt /app
COPY . /app
EXPOSE 8000
RUN pip install -r /app/requirements.txt
CMD ["python","./manage.py","runserver","0.0.0.0:8000"]
Dockerfile文件没有后缀,pip.conf,Dockerfile文件放到根目录下,# FROM下载python,WORKDIR调到app目录下相当于cd,COPY复制当前文件到app下,EXPOSE 8000开放端口8000,
2. 开始手动
在合适的地方创建一个自己的文件夹
2.1上传项目
2.2 docker 部署
进入Dockerfile所在的那一级目录下面
执行命令 docker image build -t '镜像名' .
-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,因为是当前路径,所以是一个点。
执行命令:docker images
如果成功的话,查看当前镜像,里面就会有你的image
下面则来创建容器
docker container run -p 9452:8000 -d --name 容器名
镜像名
● -p参数:第一个8000是本机端口,第二个8000是容器端口
● -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
● container-hello:是容器名字
● hello:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
docker ps看容器是否启动
运行成功的话,在网址上输入172.16.128.133:9452/att/就能看到djangoapi了
2.3 nginx 配置
将git clone 下来的前端中dist.zip解压在/usr/share/nginx/html文件夹中,如果解压在/usr/share/nginx/中的话,dist和html2个文件夹只能存在一个
vim /etc/nginx/conf.d/xxx.conf创建nginx的conf文件,将下方内容粘贴进去
2.4 xxx.conf配置(/etc/nginx/conf.d/xxx.conf)
server {
listen 9528 ;# vue端口
server_name 172.16.128.67;#服务器IP
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
nginx -t测试是否ok
systemctl reload nginx启动就可以访问172.16.128.67:9528了