docker-compose示例

2023-04-26 10:38:25 浏览数 (1)

Docker Compose 示例

下面是一个使用 Docker Compose 部署 Flask 应用程序的示例。

首先,创建一个名为 app 的文件夹,并在其中创建一个名为 app.py 的文件,其中包含以下 Flask 应用程序代码:

代码语言:javascript复制
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0')

然后,在 app 文件夹中创建一个名为 Dockerfile 的文件,其中包含以下内容:

代码语言:javascript复制
FROM python:3.9

WORKDIR /app

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

CMD ["python", "app.py"]

接下来,在 app 文件夹中创建一个名为 requirements.txt 的文件,其中包含以下 Flask 应用程序的依赖项:

代码语言:javascript复制
Flask==2.0.0

现在,创建一个名为 docker-compose.yml 的文件,并在其中定义 Flask 应用程序的服务:

代码语言:javascript复制
version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/app
    depends_on:
      - db
  db:
    image: postgres:13.3-alpine
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: example
      POSTGRES_DB: mydatabase

在这个文件中,我们定义了两个服务:webdbweb 服务使用本地 Dockerfile 构建,将容器端口 5000 映射到主机端口 5000,将本地文件夹挂载到容器中的 /app 目录,并声明依赖于 db 服务。db 服务使用远程 Docker 镜像 postgres:13.3-alpine,并设置 PostgreSQL 数据库的用户名、密码和数据库名称。

最后,使用以下命令启动服务:

代码语言:javascript复制
docker-compose up

这将创建并启动 webdb 服务,并将 Flask 应用程序监听的端口 5000 映射到主机端口 5000

现在,可以在浏览器中访问 http://localhost:5000,应该可以看到 "Hello, World!" 的消息。

0 人点赞