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 部署django项目(nginx + uwsgi +mysql)_第1张图片

 

docker 部署django项目(nginx + uwsgi +mysql)_第2张图片

部署成功

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

 

   

转载于:https://www.cnblogs.com/0x0101010/p/9162513.html

你可能感兴趣的:(docker 部署django项目(nginx + uwsgi +mysql))