创建一个新目录 guide01 ,并进入目录。
mkdir -p guide01 cd guide01/
现在在 guide01 目录下,创建两个新目录 project 和 config 。
mkdir project/ config/
注意:
project 目录:我们所有的 python Django 项目文件都将放在该目录中。
config 目录:项目配置文件的目录,包括 nginx 配置文件、python pip 的requirements.txt 文件等。
创建一个新的 requirements.txt 文件
接下来,使用 vim 命令在 config 目录中创建一个新的 requirements.txt 文件。
vim config/requirements.txt
粘贴下面的配置:
Django==2.0.4 gunicorn==19.7.0 psycopg2==2.7.4
保存并退出。
创建 Nginx 虚拟主机文件 django.conf
在 config 目录下创建 nginx 配置目录并添加虚拟主机配置文件 django.conf 。
mkdir -p config/nginx/ vim config/nginx/django.conf
粘贴下面的配置:
upstream web { ip_hash; server web:8000; } # portal server { location / { proxy_pass http://web/; } listen 8000; server_name localhost; location /static { autoindex on; alias /src/static/; } }
保存并退出。
创建 Dockerfile
在 guide01 目录下创建新文件 Dockerfile 。
运行以下命令:
vim Dockerfile
现在粘贴下面的 Dockerfile 脚本:
FROM python:3.5-alpine ENV PYTHONUNBUFFERED 1 -
RUN apk update && \ apk add --virtual build-deps gcc python-dev musl-dev && \ apk add postgresql-dev bash -
RUN mkdir /config ADD /config/requirements.txt /config/ RUN pip install -r /config/requirements.txt RUN mkdir /src WORKDIR /src
保存并退出。
注意:
我们想要为我们的 Django 项目构建基于 Alpine Linux 的 Docker 镜像,Alpine 是最小的 Linux 版本。我们的 Django 项目将运行在带有 Python 3.5 的 Alpine Linux 上,并添加 postgresql-dev 包以支持 PostgreSQL 数据库。然后,我们将使用 python pip 命令安装在 requirements.txt 上列出的所有 Python 包,并为我们的项目创建新目录 /src 。
创建 Docker-compose 脚本
使用 vim 命令在 guide01 目录下创建 docker-compose.yml 文件。
vim docker-compose.yml
粘贴以下配置内容:
version: '3' services: db: image: postgres:10.3-alpine container_name: postgres01 nginx: image: nginx:1.13-alpine container_name: nginx01 ports: - "8000:8000" volumes: - ./project:/src - ./config/nginx:/etc/nginx/conf.d depends_on: - web web: build: . container_name: django01 command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py collectstatic --noinput && gunicorn hello_django.wsgi -b 0.0.0.0:8000" depends_on: - db volumes: - ./project:/src expose: - "8000" restart: always
保存并退出。
注意:
(编辑:ASP站长网)
|