编写多个服务的compose文件
前言
DockerCompose主要用于编排多个服务,这种情形要重点考虑各服务的依赖关系和相互通信。这里给出一个部署Diango框架的示例,示范如何使用DockerCompose建立和运行一个简单的Django/PostgreSQL应用程序。Django是一个开源的Web应用框架,由Python编写而成。
一、定义项目组件
(1)创建一个空的项目目录django-pg,并在该目录下创建Dockerfile文件,输入以下内容并保存。
FROM python:3 ENV PYTHONUNBUFFERED 1
//在镜像中添加code目录
RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/
(2)继续在该目录下创建requirements.txt文件,输入以下内容并保存。
Django>=2.0,<3.0 psycopg2>=2.7,<3.0
(3)继续在该目录下创建docker-compose.yml文件,输入以下内容并保存。
version: '3' services: db: image: postgres environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres volumes: - db_data:/var/lib/postgresql web: build: . command: python manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db volumes: db_data: {}
二、创建Django项目
(1)切换到项目根目录,通过执行docker-compose run命令创建Django项目,如下所示。
[root@localhost django-pg]# docker-compose run web django-admin startproject myexample . Creating network "django-pg_default" with the default driver Creating volume "django-pg_db_data" with default driver ...... Creating django-pg_db_1 ... done Building web Step 1/7 : FROM python:3 ...... Successfully built 36237a841655 Successfully tagged django-pg_web:latest
三、连接数据库
(1)编辑项目目录中的myexample/settings.py文件,将其中的"DATABASES"定义修改如下。保存并关闭该文件。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST': 'db', 'PORT': 5432, } }
(2)在项目目录的根目录下执行docker-compose up 命令。
(3)打开浏览器访问http://localhost:8000网址,出现如图所示Django欢迎界面,说明Django已经部署成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通