在docker上部署django服务 docker+uwsgi+django+mysql+jenkins集成

部署django服务 docker+uwsgi+django+mysql+jenkins集成

常用命令

docker

docker exec -it django_python bash # 进入容器
docker rmi -f $(docker images -q) # 删除全部镜像
docker rm $(docker ps -a -q) # 删除全部容器
docker stop $(docker ps -a -q) # 停止全部容器
docker logs --tail=1000 platform_python

uwsgi

find / -name uwsgi
ln -s /var/python3/bin/uwsgi /usr/bin/uwsgi # 建立软连接
uwsgi --ini /home/project/autotestplatform/uwsgi.ini

django

python manage.py makemigrations
python manage.py migrate

python

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

一、docker-compose

version: '3'
services:
  jenkins:
    image: jenkins/jenkins:lts

    container_name: jenkins
    volumes:
#      - "/home/project:/var/jenkins_home/workspace"
      - "/home/jenkins:/var/jenkins_home"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/usr/bin/docker:/usr/bin/docker"
    environment:
      JAVA_OPTS: -Duser.timezone=Asia/Shanghai
    ports:
      - "10240:8080"
      - "10241:50000"
    user: root
    links:
      - "mysql"

#  redis:
#    image: "redis:alpine"
#    container_name: redis
#    restart: always
#    volumes:
#      - ../redis/redis.conf:/usr/local/etc/redis/redis.conf:rw
#      - ../redis/data:/data:rw
#    command: --requirepass "123456"
#    ports:
#      - "6379:6379"
#    expose:
#      - 6379
  mysql:
    image: "mysql"
    container_name: mysql
    volumes:
      - "./db:/var/lib/mysql"
      - "./conf/my.cnf:/etc/my.cnf"
      - "./init:/docker-entrypoint-initdb.d/"
    ports:
      - "3306:3306"
    expose:
      - 3306
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_USER: 'js'
      MYSQL_PASS: '123456'
  platform:
    image: platform_python
    build: .
    container_name: platform_python
    volumes:
      - "/home/jenkins/workspace:/home/project"
    ports:
      - "8000:8000"
    depends_on:
      - mysql
      - jenkins
    links:
      - "mysql"

二、dockerfile

FROM python:3.9.7
RUN mkdir /home/project
WORKDIR /home/project/autotestplatform
CMD ["sh", "/home/project/autotestplatform/start.sh"]

三、uwsgi.ini

[uwsgi]
http= 0.0.0.0:8000
chdir=/home/project/autotestplatform
wsgi-file = autotestplatform/wsgi.py
processes = 1
threads = 4
master=True
pidfile=uwsgi.pid
;daemonize=uwsgi.log # 注释掉才会运行起容器
static-map = /static=/var/python3/lib/python3.9/site-packages/rest_framework/static # 静态文件没加载的话就去找restframework的static文件夹

四、start.sh

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python manage.py makemigrations&& # 1. 生成数据库可执行文件,
python manage.py migrate&&  # 2. 根据数据库可执行文件来修改数据库

uwsgi --ini /home/project/autotestplatform/uwsgi.ini # 5. 用 uwsgi启动 django

五、注意事项

  1. 本地文件路径 映射容器Jenkins路径
  2. 本地文件路径映射后会出现Jenkins workspace目录 映射到python项目下
  3. 构建任务的名称会生成文件夹,同python项目配置的文件夹名称一致
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值