docker部署django项目实践

本文详细介绍了如何使用Docker部署Django项目,包括数据库配置、Nginx设置、uWSGI配置以及docker-compose.yml文件的创建,最后阐述了如何构建和启动服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


项目目录如下:

django_test
  |--compose/
      |--mysql/
      	|--mysql.conf
      |--nginx/
      	|--Dockerfile
      	|--log
        |--nginx.conf
      	|--ssl
  |--djangosite/
      |--apps/
      |--djangosite/
      |--Dockerfile
      |--manage.py
      |--pip.conf
      |--requirements.txt
      |--start.sh
      |--usite_wsig.ini
  |--docker-compose.yaml    
数据库配置文件
# mysql.conf

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8mb4
port = 3306 # 端口与docker-compose里映射端口保持一致
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock


[client]
port = 3306
default-character-set=utf8mb4

[mysql]
no-auto-rehash
default-character-set=utf8mb4
Nginx配置
# nginx Dockerfile

FROM nginx:latest

# 删除原有配置文件,创建静态资源文件夹和ssl证书保存文件夹
RUN rm /etc/nginx/conf.d/default.conf \
&& mkdir -p /usr/share/nginx/html/static \
&& mkdir -p /usr/share/nginx/html/media \
&& mkdir -p /usr/share/nginx/ssl

# 设置Media文件夹用户和用户组为Linux默认www-data, 并给予可读和可执行权限,
# 否则用户上传的图片无法正确显示。
RUN chown -R www-data:www-data /usr/share/nginx/html/media \
&& chmod -R 775 /usr/share/nginx/html/media

# 添加配置文件
ADD ./nginx.conf /etc/nginx/conf.d/

# 关闭守护模式
CMD ["nginx", "-g", "daemon off;"]
# nginx.conf

upstream django {
   
ip_hash;
server web:8000; # Docker-compose web服务端口
}

server {
   
listen 80; # 监听80端口
server_name localhost; # 可以是nginx容器所在ip地址或127.0.0.1,不能写宿主机外网ip地址

charset utf-8;
client_max_body_size 10M; # 限制用户上传文件大小

location /static {
   
    alias /usr/share/nginx/html/static; # 静态资源路径
}

location /media {
   
    alias /usr/share/nginx/html/media; # 媒体资源&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值