zoukankan      html  css  js  c++  java
  • 使用docker-compose+nginx+uwsgi+django部署项目

    (1)centos上下载docker + docker-compose

    (2)基础目录

    (3)首先创建一个纯净的python+django+uwsgi的镜像,便于后期使用(也可不用创建,后期docker-compose的时候再创建python镜像,这里我们先创建,后期直接把项目放进去,不用每次都下载环境)

             创建python+django+uwsgi的纯净镜像,命名镜像名为django:

    #Dockerfile  这个dockrfile不是基础目录中的Dockerfile,需要在其他目录中创建
    
    FROM python
    RUN mkdir /code
    ADD ./requirements.txt /code
    WORKDIR /code RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt RUN rm -f requirements.txt

        #requirements.txt

    django==2.2.2
    psycopg2
    uwsgi
    

    (4)基础目录中的Dockerfile

    #使用刚刚创建的基础镜像django
    
    FROM django
    WORKDIR /code
    RUN mkdir hello   #创建项目目录
    ADD . /code/hello
    

     (5)创建uwsgi配置文件

             创建conf/uwsgi.ini配置文件

    #conf/uwsgi.ini
    
    [uwsgi]
    socket = 0.0.0.0:8000
    chdir = /code/hello   #注意:在这里的路径是容器内的项目所在的路径,而不是宿主机放项目的路径
    module = hello.wsgi
    #daemonize = uwsgi.log
    master = True
    processes = 4
    

     (6)创建nginx配置文件

             创建nginx/nginc.conf

    #nginx/nginx.conf
    events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 80; charset utf-8; location / { include uwsgi_params; uwsgi_pass 10.127.2.3:8000; #端口要和uwsgi里配置的一样 #uwsgi_param UWSGI_SCRIPT hello.wsgi; #wsgi.py所在的目录名+.wsgi #uwsgi_param UWSGI_CHDIR /opt/deploy/hello; #项目路径 } location /static/ { alias /code/hello/static/; #静态资源路径 #注意:在这里的路径是容器内的项目所在的路径,而不是宿主机放项目的路径 } }

     (7)创建nginx的Dockerfile

          创建nginx/Dockerfile

    #nginx/Dockerfile
    
    FROM nginx
    
    WORKDIR /etc/nginx/
    RUN cp nginx.conf ./nginx.conf.bak
    COPY nginx.conf ./
    
    CMD ["nginx", "-g", "daemon off;"]
    

     (8)创建docker-compose.yml

    version: '3'
    
    services:
      db:
        image: postgres
        restart: always
        environment:
          POSTGRES_PASSWORD: 12345
        networks:
          net-django:
            ipv4_address: 10.127.2.4
    
      web:
        build: .
        #command: python3 manage.py runserver 0.0.0.0:8000
        privileged: true
        #ports: 
        #  - 8000:8000
        depends_on:
          - db
        networks:
          net-django:
            ipv4_address: 10.127.2.3
        #command: uwsgi --chdir=/code/hello --module=hello.wsgi --master --socket 0.0.0.0:8000
        command: uwsgi --ini /code/hello/conf/uwsgi.ini  #注意:在这里的路径是容器内的项目所在的路径,而不是宿主机放项目的路径
    
      nginx:
        container_name: nginx-container
        restart: always
        depends_on:
          - web
        links:
          - "web:web"
        build: ./nginx
        ports:
          - 8080:80
        networks:
          net-django:
            ipv4_address: 10.127.2.2
    
    networks:
      net-django:
        ipam:
          config:
            - subnet: 10.127.2.0/24
    

     (9)最后创建容器

    docker-compose build
    docker-compose up -d
    

     (10)容器创建启动后,登录x.x.x.x:8080即可

     

  • 相关阅读:
    硬件重定向
    ARM处理器模式切换(含MRS,MSR指令)
    ARM处理器工作模式
    ARM处理器异常处理
    JS和H5做一个音乐播放器,附带源码
    php页面zend加密乱码的解决办法
    ZendOptimizer怎么安装?Php网站打开显示乱码
    PHP和Python如何选择?或许可以考虑这三个问题
    SQL Server 2008读书笔记(3):表
    Dijkstra算法
  • 原文地址:https://www.cnblogs.com/yangyangming/p/11933741.html
Copyright © 2011-2022 走看看