前后端入门-django 项目 docker 部署

1 环境

 

# 软件版本

python 3.8.16

django 3.2.3

centos 7.6

docker 20.10.8

docker-compose v2.6.1

mysql 5.7.26

2 项目结构介绍

路径没有硬要求,后续打包时填写目录正确即可。

project
├── docker_env			# dockerfile配置目录
│   ├── django			# 后端 dockerfile配置目录
│   │   └── DockerfileBuild	# 后端 镜像 build dockerfile 文件
│   └── web			# 前端 web配置目录
├── hippo			# 后端项目目录
    ├── docker_start.sh		# 后端启动脚本
    ├── hippo_api		# 后端具体目录
    │   ├── db.sqlite3
    │   ├── hippo_api
    │   ├── __init__.py
    │   ├── logs
    │   ├── manage.py		# django 管理文件
    │   └── scripts
    ├── pip.conf		# pip 安装使用镜像源文件
    └── requirements.txt	# 环境需要依赖包

3 前期准备

3.1 配置文件准备

# 进入项目hippo目录
cd project/hippo
# 编辑文件 pip.conf文件
vi pip.conf

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

# 生成 requirements.txt
pip freeze > requirements.txt

# 相对路径启动django项目,启动命令取决于manage.py的相对路径
vi docker_start.sh

#!/bin/bash
python hippo_api/manage.py runserver 0.0.0.0:8000

其余数据库配置文件可以自行修改django项目seting配置文件,本文重点docker打包。

3.2 权限配置(一定要配置)

# 服务启动脚本赋权
chmod +x project/hippo/docker_start.sh

4 Dockerfile编写

注意: 该dockerfile包含容器服务直接运行。打包后的容器docker run后,服务会直接启动。

如若希望启动容器后,通过docker exec -it 进入容器启动服务,请注释CMD启动服务部分。

# 建立 python3.8 环境
FROM python:3.8.16

# 镜像作者
MAINTAINER FEIFEI

# 设置 python 环境变量
ENV PYTHONUNBUFFERED 1

# 设置pip源为国内源
COPY ./hippo/pip.conf /root/.pip/pip.conf

# 安装部分必要包
RUN apt-get update && apt-get install bash bash-doc bash-completion git telnet iputils-ping -y

# 在容器内创建backend文件夹
RUN mkdir -p /backend

# 设置容器内工作目录
WORKDIR /backend

# 将当前目录文件加入到容器工作目录中(. 表示当前宿主机目录)
ADD ./hippo /backend

# pip安装依赖
# RUN python3 -m pip install -i https://mirrors.aliyun.com/pypi/simple/ -r ./requirements.txt
RUN pip install -r requirements.txt

# 启动服务命令
CMD ["chmod +x /backend/docker_start.sh"]
CMD ["/backend/docker_start.sh"]

5 打docker基础Build包

# docker build
cd project/
docker build -f ./docker_env/django/DockerfileBuild -t django_docker_img:v1 .

# docker build 参数
docker build -f Dockerfile -t ImageName:TagName dir

# 选项
-f Dockerfile配置文件
Dockerfile  镜像配置的Dockerfile 存放位置
-t 给镜像加一个Tag
ImageName 给镜像起的名称
TagName 给镜像的Tag名
Dir Dockerfile所在目录


# 查看打包生成的镜像
docker images
REPOSITORY          TAG       IMAGE ID       CREATED             SIZE
django_docker_img   v1        2c1d8e8c2e61   2 hours ago         1.03GB

6 运行docker容器及验证服务

# 启动容器,服务自启动,打包时以写入
docker run -it -d -p 8081:8000 --name mysite django_docker_img:v1
# 浏览器访问
http://192.168.192.10:8081/admin/login/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值