我需要为flask和其他几个库创建dockercompose?

2024-05-19 03:05:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要为基于flask的API后端应用程序创建一个docker compose文件。但该应用程序基于以下几个其他库。所有这些都只需要在docker容器上运行。你能建议docker将如何撰写文件和相关文件吗

  • psycopg2
  • aniso8601==8.0.0
  • argon2 cffi==19.2.0
  • certifi==2019.11.28
  • cffi==1.14.0
  • chardet==3.0.4
  • 点击==7.1.1
  • 加密==2.9
  • defusedxml==0.6.0
  • 烧瓶==1.1.2
  • 烧瓶缓存==1.8.0
  • 烧瓶JWT延长==3.24.1
  • Flask Login==0.4.1
  • 烧瓶OAuthlib==0.9.5
  • 烧瓶开口ID==1.2.5
  • 烧瓶静止==0.3.8
  • 炼金术==2.4.1
  • 烧瓶摆动==0.2.13
  • 烧瓶WTF==0.14.3
  • graphviz==0.14
  • gunicorn==19.10.0
  • idna==2.9
  • 危险==0.24
  • Jinja2==2.10.1
  • kazoo==2.5.0
  • Mako==1.1.2
  • MarkupSafe==1.1.1
  • oauthlib==2.1.0
  • passlib==1.7.2
  • 鼠兔==1.1.0
  • pycparser==2.20
  • PyJWT==1.7.1
  • pykafka==2.8.0
  • pymemcache==3.1.1
  • pymongo==3.5.1
  • PYODBC==1.3.5.2
  • python dateutil==2.8.1
  • python编辑器==1.0.4
  • python3 openid==3.1.0
  • pytz==2019.3
  • Pyaml==5.3.1
  • redis==3.5.0
  • 请求==2.23.0
  • 请求oauthlib==0.8.0
  • 六=1.14.0
  • SQLAlchemy==1.3.15
  • SQLAlchemy Utils==0.36.3
  • 表格==0.8.7
  • urllib3==1.25.8
  • Werkzeug==0.15.3
  • WTForms==2.2.1
  • python ldap

Tags: 文件composedockerapi应用程序flask烧瓶sqlalchemy
2条回答

这里最好的方法是浏览这个文件-https://docs.docker.com/compose/gettingstarted/。但如果你想快速尝试,这里有一些简短的说明:

  1. 创建一个包含所有依赖项的requirements.txt文件(包含版本的LIB列表)
  2. 创建一个Dockerfile
FROM python:3.7-alpine

WORKDIR /code

ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0

RUN apk add  no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt

RUN pip install -r requirements.txt
COPY . .

CMD ["flask", "run"]
  1. 创建docker compose.yml文件:
version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"

当然,在现实中它会更复杂(你会有数据库,也许是Redis,等等-对于大型项目,这个工具可以帮助你https://github.com/cookiecutter-flask/cookiecutter-flask

我的例子是Django,但您也可以将其用于烧瓶容器

您可以创建Dockerfile,例如,如果您的烧瓶容器在容器的app文件夹中运行:

docker-compose.yml:

version: '3'

services:

web:
    build: .
    volumes:
      - .:/app
    ports:
      - "${WEB_HOST}:${WEB_HOST}"
    depends_on:
      - mysql # if you have database in another container
    environment:
      - PYTHONUNBUFFERED=1
    command: python manage.py runserver 0.0.0.0:${WEB_HOST} #or what command you use to start your flask server

您需要一个requirements.txt文件来列出所有包

并在运行docker compose up时编写一个Dockerfile将所有包安装到app container文件夹中:

FROM python:3.7.5-buster
ADD requirements.txt /app/requirements.txt
ADD . /app/
WORKDIR /app/
RUN pip install -r requirements.txt

相关问题 更多 >

    热门问题