一个基本的Python Docker Web项目

首先,app.py必不可少,添加上必要的import引用。

# -*- coding: utf-8 -*-
from flask import Flask,jsonify
from flask import abort
from flask import make_response
from flask import request

import requests, json

app=Flask(__name__)

@app.route('/api/user/login', methods=['POST', 'OPTIONS', 'GET'])
def login():
    print("enter login")

if __name__ =='__main__':
    app.run(debug = True)

其次,将上一步需要的import 库添加到requirements.txt中。

gunicorn
gevent
flask~=1.1.1
pip~=19.0.3
Jinja2~=2.10.1
Werkzeug~=0.16.1
requests~=2.21.0

添加entrypoint.sh脚本,务必在编译镜像之前,即给其添加可执行权限,比如chmod 755 entrypoint.sh

#!/bin/bash

gunicorn app:app -c /Project/demo/gunicorn.conf.py

否则会出现如下报错

docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "/Project/demo/entrypoint.sh": permission denied: unkn                          own.

以及gunicorn.conf.py文件

workers = 5
worker_class = "gevent"
bind = "0.0.0.0:1919"

最后是Dockerfile文件

FROM python:3.6
WORKDIR /Project/demo

COPY requirements.txt ./
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple

COPY . .
RUN apt-get update


ENV ORACLE_HOME=/Project/demo/instantclient_11_2
ENV PATH=$ORACLE_HOME:$PATH
ENTRYPOINT ["/Project/demo/entrypoint.sh"]

使用如下两条命令即可分别编译镜像和启动服务。

docker build -t 'dongcaca' .
docker run -d -p 6666:8888 --name name_dongdongqiang dongcaca

则,访问 http://ip:1919/api/user/login 即可。

而如果需要访问数据库,还需要添加db_mg.py文件

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

class DatabaseManagement():
    def __init__(self):
    self.engine_postgre = create_engine('postgresql+psycopg2://ip.port',connect_args={'sslmode':'require'},echo=True) # 以连接odoo postgre数据库为例
    DBsession_postgre = sessionmaker(bind=self.engine_postgre)
    self.session_postgre = DBsession_postgre()

并且需要在app.py中添加相应的import导入设置

from db_mg import DatabaseManagement
from sqlalchemy import and_


db_obj = DatabaseManagement()

以及在requirements.txt中添加相关依赖

sqlalchemy
psycopg2

如果为了方便,还需要封装常用的数据库查询语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker一个开源的容器化平台,可以帮助开发人员将应用程序及其依赖项打包在一个可移植的容器中,以便在不同的环境中部署和运行。对于安装Python Web应用程序,可以使用Docker容器来实现快速、可靠和一致的部署。 下面是一些步骤来安装Python Web应用程序的Docker环境: 1. 首先,确保已经安装了Docker。你可以参考Docker官方文档来安装适合你操作系统的Docker版本。 2. 在项目的根目录下创建一个Dockerfile文件,该文件将用于构建Docker镜像。Dockerfile包含了构建镜像所需的所有指令和配置。 例如,一个基本Dockerfile可能如下所示: ``` FROM python:3.8 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "app.py"] ``` 这个Dockerfile以Python 3.8作为基础镜像,将工作目录设置为/app,将requirements.txt复制到工作目录中,并安装项目所需的所有依赖项。然后将整个项目复制到工作目录,并使用CMD指令来运行app.py文件。 3. 构建Docker镜像。在命令行中导航到项目的根目录,并运行以下命令来构建镜像: ``` docker build -t mywebapp . ``` 这将根据Dockerfile构建一个名为mywebapp的新镜像。 4. 运行Docker容器。使用以下命令运行刚刚构建的镜像: ``` docker run -p 8000:8000 mywebapp ``` 这将在Docker容器中运行mywebapp镜像,并将容器的8000端口映射到本地的8000端口。 现在,你已经成功地安装了Python Web应用程序的Docker环境,并且你的应用程序可以通过访问http://localhost:8000在本地运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值