此平台支持普通部署和docker部署,当前文章介绍docker部署

若在服务器部署本项目端口默认使用8088,请在安全组内提前放开此端口

安装docker环境(ubuntu系统)

安装docker

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install docker.io

安装docker-compose

使用如下链接下载安装

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

修改二进制权限

sudo chmod +x /usr/local/bin/docker-compose

检查docker和docker-compose版本

docker -v
docker-compose -v

设置镜像仓库源

默认的镜像仓库是国外的,拉取镜像的速度很慢,所以为了方便镜像获取,可以更改镜像源,方法是添加一个配置文件

sudo vi /etc/docker/daemon.json

添加信息如下

{ "registry-mirrors": ["https://registry.docker-cn.com"] } 重启容器服务,生效

sudo systemctl daemon-reload 
sudo systemctl restart docker

配置mysql环境

下载mysql镜像

docker pull mysql:5.7

下载redis镜像

docker pull redis:alpine

拉取docker部署代码,包含mysql和redis的部署

git clone https://github.com/zhangmoumou1/common-docker

在此根目录执行命令,启动mysql和redis服务

docker-compose up -d

执行结果如下,可使用链接工具查看mysql和redis是否正常

root@VM-0-5-ubuntu:~/dockers/common-docker# docker-compose up -d
WARNING: Some networks were defined but are not used by any service: frontend
Creating network "common-docker_backend" with driver "bridge"
Creating redis ... done
Creating mysql ... done

准备平台镜像

这里博主提供了公开镜像,直接拉取即可。也可以自己拉取代码构建容器

docker pull ccr.ccs.tencentyun.com/zhangyancheng/test_data_factory:1.0

修改配置

拉取docker部署代码

git clone https://github.com/zhangmoumou1/TestDataFactory-docker.git

docker配置

执行以下命令,重命名配置文件名称

mv env.template .env

修改.env文件配置,设置mysql连接信息

# db
MYSQL_IMAGE=mysql:5.7
MYSQL_IP=127.0.0.1
MYSQL_ROOT_USERNAME=root
MYSQL_ROOT_PASSWORD=123456
MYSQL_NAME=TestDataFactory

# web
TestDataFactory_IMAGE=ccr.ccs.tencentyun.com/zhangyancheng/test_data_factory:1.0

# nginx
NGINX_IMAGE=nginx:stable-alpine
NGINX_PORT=8088

nginx配置

如果关联域名部署,需要修改nginx/conf.d/TestDataFactory.conf,server_name改为域名地址,如www.xxx.com

server {
    listen      80;
    server_name localhost;

    location / {
        proxy_pass http://web:8088;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-User-Agent $http_user_agent;
    }

    location /static/ {
        root /usr/share/nginx/TestDataFactory;
    }

    location /media/ {
        root /usr/share/nginx/TestDataFactory;
    }
}

部署平台

在docker代码根目录下,执行以下命令启动容器

docker-compose up -d

分别执行以下2个命令,进行数据库迁移创建

docker-compose run web python manage.py makemigrations

docker-compose run web python manage.py migrate

收集静态资源

docker-compose run web python manage.py collectstatic

然后执行重启

docker-compose down
docker-compose up -d

看到如下输出就是容器已经在后台运行了

root@VM-0-5-ubuntu:~/dockers/TestDataFactory-docker# docker-compose ps
        Name                       Command               State                     Ports                   
-----------------------------------------------------------------------------------------------------------
TestDataFactory_nginx   /docker-entrypoint.sh ngin ...   Up      0.0.0.0:443->443/tcp, 0.0.0.0:8088->80/tcp
TestDataFactory_web     supervisord -n -c supervis ...   Up 

访问平台

此时访问IP+8088打开页面 首页入口 img.png 功能详情 img.png 提交记录 img.png

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://zhangyanc.club/subject/article/django_tools_docker/

许可协议:署名-非商业性使用 4.0 国际许可协议