python - 我需要为烧瓶和其他几个库创建一个 docker-compose 吗?
问题描述
我需要为基于烧瓶的 API 后端应用程序创建一个 docker-compose 文件。但是此应用程序基于以下几个其他库。所有这些都只需要在 docker 容器上运行。您能否建议 docker-compose 文件和相关文件(如果有)如何?
- 心理咨询师2
- aniso8601==8.0.0
- argon2-cffi==19.2.0
- 证书==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
- Flask-JWT-扩展==3.24.1
- 烧瓶登录==0.4.1
- Flask-OAuthlib==0.9.5
- Flask-OpenID==1.2.5
- Flask-RESTful==0.3.8
- Flask-SQLAlchemy==2.4.1
- 烧瓶大摇大摆== 0.2.13
- 烧瓶-WTF==0.14.3
- graphviz==0.14
- 独角兽==19.10.0
- idna==2.9
- 它的危险==0.24
- Jinja2==2.10.1
- 卡祖==2.5.0
- 魔子==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
- pypyodbc==1.3.5.2
- python-dateutil==2.8.1
- 蟒蛇编辑器==1.0.4
- python3-openid==3.1.0
- pytz==2019.3
- PyYAML==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
- 蟒蛇-ldap
解决方案
最好的方法是浏览这个文件 - https://docs.docker.com/compose/gettingstarted/。但是,如果您想快速尝试,那么这里有一些简短的说明:
- 创建一个包含所有依赖项的requirements.txt文件(具有版本的库列表)
- 创建一个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"]
- 创建docker-compose.yml文件:
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
当然实际上它会更复杂(您将拥有数据库,可能是 Redis 等 - 对于大型项目,此工具可以帮助您https://github.com/cookiecutter-flask/cookiecutter-flask)
推荐阅读
- c - 相同的功能有不同的表现,为什么?
- javascript - 我想使用 beautiful-dnd 交换 2x2 矩阵元素,但是当我将它们映射时,它会生成 2 个列
- node.js - 在没有库的情况下使用 nodeJS 解析 CSV 字符串
- html - 如何修复我的 div 位移对齐?
- javascript - 无法读取 null 的属性“insertAdjacentHTML”
- jquery - Laravel - 在 AJAX 响应中返回 2 个视图
- pandas - 如果 pandas 包含我要替换的字符串的一部分,我该如何更改它的列值?
- python - 如何模拟一个类并为每组构造函数参数提供一个唯一的对象?
- javascript - 在鼠标移开之前使元素不与其他元素一起移动
- nlp - 从单词序列中提取句子并添加标点符号