我如何添加gunicorn,以便使用docker compose部署我的烧瓶应用程序



我已经可以用烧瓶运行docker compose了。然而,我真的不知道如何在命令中添加gunicorn以便使用它。我已经在requirements.txt文件中添加了它。在这里我可以给你看我的docker-compose.yml和Dockerfile。

docker-compose.yml

version: "3.7"
services:
waitfordb:
image: dadarek/wait-for-dependencies
depends_on:
mysql:
condition: service_healthy
environment:
MYSQL_PORT: "3306"
command: mysql:3306
mysql:
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- ./mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "12345678"
MYSQL_DATABASE: flaskmysql
healthcheck:
test: "mysql -uroot -p$$MYSQL_ROOT_PASSWORD -e 'SELECT count(*) FROM information_schema.tables' $$MYSQL_DATABASE"
interval: 1s
timeout: 3s
retries: 20
web:
build: .
depends_on:
waitfordb:
condition: service_completed_successfully
ports:
- 5000:5000
command: /flask/app/server.py

environment:
MYSQL_HOST: ${MYSQL_HOST}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_DB: ${MYSQL_DB}
volumes:
- ./:/flask
volumes:
mysql-data:

Dockerfile

FROM python:3.9-slim-buster
RUN apt-get update && apt-get install -y git python3-dev gcc 
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --upgrade -r requirements.txt --no-cache-dir
EXPOSE 5000
ENTRYPOINT ["python"]

Server.py文件

app = Flask(__name__)
@app.route("/", methods=["GET"])
def index():
return jsonify({'result': "Fire detection app"})

if __name__ == '__main__':
app.run(port=5000, debug=False, host="0.0.0.0")

如果有人知道我可以在哪里替换命令,这样它就可以从5000端口获得所有流量。这样我就可以将它部署在ec2实例中,用于我需要运行的演示。谢谢

我有一个由gunicorn、docker和docker组成的烧瓶应用程序,它的工作原理如下:

Dockerfile

user.app是目录中的位置,create_app((在该文件中定义。在您的情况下,将ENTRYPOINT替换为CMD。

Other info here ...
CMD gunicorn -b 0.0.0.0:5000 --timeout 120 --access-logfile - "user.app:create_app()

码头工人组成

用下面列出的内容替换您的命令。

Other info here...
build:
context: ./
dockerfile: Dockerfile
command: >
gunicorn -b 0.0.0.0:5000
--timeout 120
--access-logfile -
--reload
"user.app:create_app()
container_name: user
Other info here...

最新更新