如何把自己的Flask配置 Docker Compose 主要涉及编写一个 docker-compose.yml 文件,该文件描述了要运行的服务、它们的依赖关系以及其他配置选项。以下是一个简单的例子,展示了如何配置一个基本的 Docker Compose 文件来运行一个 Web 服务。
假设你要运行一个基于 Flask 的 Web 服务。首先,确保你已经安装了 Docker 和 Docker Compose。
-
创建一个新目录,例如
myapp,并在其中创建一个app目录用于存放 Flask 应用代码。 -
在
myapp目录中创建一个docker-compose.yml文件,并将以下内容添加到文件中:version: '3.7' services: web: build: ./app ports: - "5000:5000" environment: OPENAI_API_KEY: "your_openai_api_key_here"这个
docker-compose.yml文件定义了两个服务:web。web服务使用本地的./app目录作为构建上下文,并将容器的 5000 端口映射到主机的 5000 端口。 -
在
myapp/app目录中创建一个简单的 Flask 应用,例如:from flask import Flask from flask import jsonify app = Flask(__name__) @app.route('/') def hello_world(): return jsonify(message="Hello, World!") if __name__ == '__main__': app.run(host='0.0.0.0') -
最后,在
myapp目录中打开终端,运行以下命令启动服务:sudo docker compose up这会构建并启动
web服务。Flask 应用将在http://localhost:5000上运行,并返回一个简单的 JSON 响应。
如果有依赖需要配置一个Dockerfile
在 ./app 目录中,你需要有一个 Dockerfile 文件,用于构建你的 Python 应用镜像。这个 Dockerfile 可以是这样的:
Dockerfile
Copy code
FROM python:3.8-slim
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]
一些命令
生成requirements.txt文件
pip freeze > requirements.txt
启动docker
sudo docker compose up
如果修改了Dockerfile发现配置没有生效,需要增加一个参数
sudo docker-compose up --build
如果测试稳定了.可以长期启动
sudo docker compose -d
查看都有哪些docker
sudo docker ps
关闭这个docker
sudo docker-compose down
进入这个docker
sudo docker exec -it make_video-web-1 bash
make_video-web-1为docker名字,可以使用docker ps查看
查看这个docker的日志
sudo docker logs -f make_video-web-1
同步docker中的时间
version: '3.8'
services:
my_service:
image: my_image
container_name: my_container
cap_add:
- SYS_TIME
volumes:
- /etc/localtime:/etc/localtime:ro
可以从docker中查看日志
- 去掉nohup
- ENV PYTHONUNBUFFERED=1 //设置环境变量以禁用输出缓冲