在docker中构建django项目
(需安装docker-compose, 安装教程)
1. 定义项目组件
对于此项目,您需要创建Dockerfile,Python依赖项文件和docker-compose.yml文件。(您可以使用此文件的扩展名.yml或.yaml扩展名。)
1.1. 创建一个空目录
该目录应仅包含构建该映像的资源。
1.2 创建Dockerfile
内容如下:
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
1.3 创建requirements.txt
内容如下:
django
django-ckeditor
pillow
numpy
1.4 创建docker-compose.yml
该docker-compose.yml文件描述了构成应用程序的服务。在此示例中,这些服务是Web服务器和数据库。撰写文件还描述了这些服务使用哪些Docker映像,它们如何链接在一起,以及它们可能需要安装在容器内的任何卷。最后,该docker-compose.yml文件描述了这些服务公开的端口。有关此文件如何工作的更多信息,请参阅docker-compose.yml参考。 内容如下:
version: '3'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
2 创建django项目
- 切换到项目跟目录】
- 通过运行docker-compose run 命令创建django项目
sudo docker-compose run web django-admin startproject mysite .
- 查看项目内容
ls -l
- 更改文件所有权
sudo chown -R $USER:$USER .
3 连接数据库
- 打开mysite/setting.py
改为:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
- 从项目的顶级目录运行 docker-compose up命令