【Docker】一套使用 Docker 部署 Django 应用的方案中的几个问题求解
这几天研究了一下 Docker 文档和参考了一些使用 Docker 部署 Django 项目的文章,综合各种方法后我给出了如下的一套方案,大家看看是否合理。以及其中的几个关键问题该如何解决?
第一步:服务器安装 Docker
这没什么说的,参考 官方安装指南
第二步:将 Dockerfile,docker-compose.yml 和代码仓库拉取到服务器
因为不想推送到 docker 云,直接本地 build,我的项目目录结构如下:
我有两个 Dockerfile,一个是运行 Django 镜像,一个是 Nginx 的镜像,在配置中把代码打包到了 Django 镜像里。
第三步:build 和启动容器
接下使用 docker-compose build 和 up 构建和运行容器,然后在 django 容器中要做的事情有:
收集静态文件,会收集到 /static 文件夹下
迁移数据库,会创建一个 db.sqlite3 文件在容器中代码的根目录
这里有两个问题:
如何让 nginx 容器访问到 django 容器中的 /static 文件夹,这样 nginx 才能处理静态文件请求
如何把容器中的 db.sqlite3 文件挂到主机下,这样即使容器挂了数据库文件还在
我目前的 docker-compose.yml 文件如下,无法解决如上问题
version: '2'services:
django:
build:
context: .
dockerfile: ./compose/django/Dockerfile
command: /gunicorn.sh
volumes:
- .:/app
nginx:
build: ./compose/nginx
depends_on:
- django
volumes_from:
- django
ports:
- "0.0.0.0:80:80"
如果上述问题能够解决,那么部署过程就变得简单了,扔给一台新的服务器,只要
安装 docker
从 github 仓库拉取代码到服务器
docker-compose build 和 up 运行容器,部署完成
希望有经验的朋友能给一些指点和思路,感激不尽!
回答
-v
共享目录呗
以上是 【Docker】一套使用 Docker 部署 Django 应用的方案中的几个问题求解 的全部内容, 来源链接: utcz.com/a/75085.html