• docker 部署django项目(nginx + uwsgi +mysql)


    最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高。特此写下随笔与小伙伴们分享,希望能对大家有所启发。

    docker的理论我就不赘述了,直接上干菜吧。

    本人django项目目录结构:

    xxx_project:

      apps

        app1

        app2

        app3

           extra_apps

        xadmin

        ueditor

      xxx_project

        settings.py

        urls.py

        wsgi.py

      templates

        xxx.html

      requirements.txt

      manage.py

      static

           media

      conf

        uwsgi.ini

      nginx

        Dockerfile

        nginx.conf

        uc_nginx.conf

      Dockerfile

      docker-compose.yml

      docker-entrypoins.sh

    1.首先上docker-compose.yml配置文件

    version: '3'
    services:
        db:
          image: mysql:5.7
          expose:
            - 3306
          environment:
              MYSQL_DATABASE: xxxxxx
              MYSQL_ROOT_PASSWORD: xxxxxx
              MYSQL_USER: root
          volumes:
             - ./mycustom.cnf:/etc/mysql/conf.d/custom.cnf
             - ~/containers/mysql/data:/var/lib/mysql
        web:
           build: .
           restart: always
           command: uwsgi -i ./conf/uwsgi.ini
           volumes:
              - .:/docker_api
           ports:
              - 8000:8000
           depends_on:
              - db
           links:
              - db
        nginx:
          container_name: nginx-container
          restart: always
          depends_on:
            - web
          build: ./nginx
          ports:
            - 8080:80
          volumes:
            - .:/docker_api
    
    ~

    注:db 数据库

      web 项目

      nginx 代理服务器

    2.现在上web的Dockerfile配置文件

    FROM python:2.7.12
    LABEL maintainer 0x0101010
    ENV PYTHONUNBUFFERED 1
    RUN mkdir /docker_api
    WORKDIR /docker_api
    ADD . /docker_api
    RUN pip install --upgrade pip
    RUN  pip install -i https://pypi.douban.com/simple -r requirements.txt

    3.现在上nginx的Dockerfile

    FROM nginx:latest
    COPY uc_nginx.conf /etc/nginx/sites-available/
    
    RUN mkdir -p /etc/nginx/sites-enabled/
        && ln -s /etc/nginx/sites-available/uc_nginx.conf /etc/nginx/sites-enabled/
    
    CMD ["nginx", "-g", "daemon off;"]

    4. nginx 和uwsgi的配置就不在赘述,本人前一篇随笔有详细讲解,可参考

    5.项目启动

    sudo docker-compose up --build

    部署成功

    至此,项目已通过docker-compose 部署成功,希望对大家有所启发,如果在部署中遇到问题可以留言,一起讨论。同时也希望大神评论指教。

       

  • 相关阅读:
    《Glibc内存管理》笔记DAY1
    highcharts相关属性
    SQL Server常用技巧
    常用系统表相关的操作
    SQL递归
    jQuery 根据JSON数据动态生成表格
    string.Format 格式化输出日期
    Easyui修改样式
    submit异步提交 回调的方法
    mvc多个按钮的提交方法
  • 原文地址:https://www.cnblogs.com/0x0101010/p/9162513.html
Copyright © 2020-2023  润新知