在centos上部署django +docker +nginx + mysql 并涉及到图片的上传下载
1 dockerfile的书写
FROM python:3.6 WORKDIR /root COPY . /root/ #需要对pip更新并安装 wheel 否则无法正常安装 msyqlclient RUN pip3 install --upgrade pip\ &&pip3 install wheel\ &&pip3 install --upgrade setuptools\ &&pip3 install --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple -r /root/requirements.txt # 需要删除项目引用文件的弟36 37 行 否则会报错 mysql clinet RUN sed -i '36,37d' /usr/local/lib/python3.6/site-packages/django/db/backends/mysql/base.py #cmd 命令只执行一个 只有一个有效 CMD uwsgi --ini /root/djc_uwsgi1.ini
注意点:
RUN: 可以用run来进行
CMD的用法:#cmd 命令只执行一个 只有一个有效
2.uwsgi文件的书写
[uwsgi] ;http= 0.0.0.0:9001#先用http形式进行调试 当所有功能调试通过之后再使用socket形式 socket = 0.0.0.0:9001 chdir=/root module = djc_wcapp.wsgi vacuum=True master=True workers=8 enable-threads=True threads=32 memory-report=True ;daemonize = /root/static/uwsgi_log.log #使用容器运行要将这两个注释 ;pidfile = /root/static/uwsgi_pid.log #
3.nginx.conf
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { uwsgi_pass 127.0.0.1:9001; include /etc/nginx/uwsgi_params; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2 default_server; # listen [::]:443 ssl http2 default_server; # server_name _; # root /usr/share/nginx/html; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # location / { # } # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } }
启动项目
# djc_wcapp a wechat app djc_wcapp #创建文件目录 用于挂载容器接收的文件保存到本地虚拟机 mkdir -p /data/test/static/media #git 拉下项目之后 切换到dev 分支 并在目录下创建 static/media目录 #创建镜像 docker build -t djc:v10 -f /data/djc_wcapp/Dockerfile1 . #依靠容器创建镜像 绑定端口 绑定volume地ss docker run -itd -p9001:9001 --name djc_nb1 -v /data/test/static/media:/root/static/media djc:v10
浙公网安备 33010602011771号