设计之家官方网站,网站搭建服务合同,用小程序做视频网站,wordpress汉化安装教程今天我们来用docker-compose 快速安装一个DjangoPostgreSQL的开发环境。 Compose简介 Compose 定位是“defining and running complex applications with Docker”#xff0c;前身是 Fig#xff0c;兼容 Fig 的模板文件。 Dockerfile 可以让用户管理一个单独的应用容器#…今天我们来用docker-compose 快速安装一个DjangoPostgreSQL的开发环境。 Compose简介 Compose 定位是“defining and running complex applications with Docker”前身是 Fig兼容 Fig 的模板文件。 Dockerfile 可以让用户管理一个单独的应用容器而 Compose 则允许用户在一个模板YAML 格式中定义一组相关联的应用容器被称为一个 project即项目例如一个 Web 服务容器再加上后端的数据库服务容器等。 该项目由 Python 编写实际上调用了 Docker 提供的 API 来实现。 安装docker-compose请戳这里安装好后就让我们一起开始吧 一、定义项目组件 1.1 创建一个空的项目目录 [rootlocalhost sparks]# mkdir django_test1.2 在你的项目目录下创建一个名为Dockerfile文件 Docker 可以通过 Dockerfile 的内容来自动构建镜像。Dockerfile 是一个包含创建镜像所有命令的文本文件通过docker build命令可以根据 Dockerfile 的内容构建镜像在介绍如何构建之前先介绍下 Dockerfile 的基本语法结构。 想要了解更多 官方文档 1.3 添加如下的内容到Dockerfile FROM python:3 ENV PYTHONUNBUFFERED 1RUN mkdir /codeWORKDIR /codeADD requirements.txt /code/RUN pip install -r requirements.txtADD . /code/这个dockerfile文件开始于python3基础镜像创建并移动工作目录至code目录将requirements.txt添加到code目录中并用pip命令安装该文件中的依赖包。 1.4 在你的项目目录下创建并添加如下内容至requirements.txt Django1.8,2.0psycopg21.5 在你的项目目录下创建并添加如下内容至docker-compose.yml version: 3services:db:image: postgresweb:build: .command: python3 manage.py runserver 0.0.0.0:8000volumes:- .:/codeports:- 8000:8000depends_on:- db这个文件定义了两个服务数据库db服务和web服务 想要了解更多请点击这里 二、创建Django项目 在这一步用之前步骤创建的文件制作镜像并用这个镜像来创建Django项目 2.1 转至项目根目录运行如下命令来创建Django项目 sudo docker-compose run web django-admin.py startproject composeexample .这里django-admin.py startproject composeexample需要使用web服务的镜像和配置但是web镜像目前并不存在所以compose自动在当前目录下寻找和创建该服务 具体可以参见docker-compose.yml中 build: . 这一行。 一旦web服务镜像被创建就在该容器中运行django-admin.py startproject 来创建Django项目 2.2 在上面的命令执行完后查看你的项目目录文件 $ ls -ldrwxr-xr-x 2 root root composeexample-rw-rw-r-- 1 user user docker-compose.yml-rw-rw-r-- 1 user user Dockerfile-rwxr-xr-x 1 root root manage.py-rw-rw-r-- 1 user user requirements.txt如果你是在linux上运行dockermanage.py文件属于root创建因为在容器内运行都是用root用户可以通过如下命令改变权限 sudo chown -R $USER:$USER .三、连接数据库 在这一部分我们将创建数据库并连接Django 3.1 在你的项目目录下编辑composeexample/settings.py文件 3.2 将文件中DATABASES ...替换为如下内容 DATABASES {default: {ENGINE: django.db.backends.postgresql,NAME: postgres,USER: postgres,HOST: db,PORT: 5432,}
}3.3 运行命令在你的项目根目录下 $ docker-compose up
djangosample_db_1 is up-to-date
Creating djangosample_web_1 ...
Creating djangosample_web_1 ... done
Attaching to djangosample_db_1, djangosample_web_1
db_1 | The files belonging to this database system will be owned by user postgres.
db_1 | This user must also own the server process.
db_1 |
db_1 | The database cluster will be initialized with locale en_US.utf8.
db_1 | The default database encoding has accordingly been set to UTF8.
db_1 | The default text search configuration will be set to english.. . .web_1 | May 30, 2017 - 21:44:49
web_1 | Django version 1.11.1, using settings composeexample.settings
web_1 | Starting development server at http://0.0.0.0:8000/
web_1 | Quit the server with CONTROL-C.到了这里你的Django应用已经运行在docker主机的8000端口上啦使用浏览器输入http://localhost:8000就可以看到Django的欢迎界面啦 3.4 查看正在运行的容器 在另一个终端上你可以通过 docker ps 命令查看正在运行的容器 $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
def85eff5f51 django_web python3 manage.py... 10 minutes ago Up 9 minutes 0.0.0.0:8000-8000/tcp django_web_1
678ce61c79cc postgres docker-entrypoint... 20 minutes ago Up 9 minutes 5432/tcp django_db_1一个web容器一个postgre容器都在后台运行中至此我们已经大功告成啦 转载于:https://www.cnblogs.com/LiCheng-/p/6963779.html