【问题标题】:Running Redis rq worker on Docker在 Docker 上运行 Redis rq worker
【发布时间】:2023-03-21 13:13:01
【问题描述】:

我正在尝试使用 redis rq 创建一个任务队列。我试图按照教程进行操作,但我正在使用 docker。以下是我的代码-

app.py

from flask import Flask, request
import redis
from rq import Queue

import time
app = Flask(__name__)

r = redis.Redis()
q = Queue(connection=r)

def background_task(n):

    """ Function that returns len(n) and simulates a delay """

    delay = 2

    print("Task running")
    print(f"Simulating a {delay} second delay")

    time.sleep(delay)

    print(len(n))
    print("Task complete")

    return len(n)

def index():

    if request.args.get("n"):

        job = q.enqueue(background_task, request.args.get("n"))

        return f"Task ({job.id}) added to queue at {job.enqueued_at}"

    return "No value for count provided"


if __name__ == "__main__":
    app.run()

Docker 撰写文件-

version: "3.8"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
    environment:
      FLASK_ENV: development
     
      
  redis:
    image: "redis:alpine"

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
EXPOSE 5000
COPY . .
CMD ["flask", "run"]

每当我运行 '''docker-compose up --build''' 并打开 http://localhost:5000/ 时,我都找不到 Url 我哪里错了? 应该如何在 docker 容器中使用 rq worker 命令。

【问题讨论】:

  • 我是在 docker 中使用 redis 的新手,因此任何指向该内容的教程链接都会有所帮助

标签: python docker flask redis docker-compose


【解决方案1】:

redis:
图像:“redis:alpine”

问题是你的 Docker compose YAML 中指定的镜像应该是你的 Dockerfile 构建的镜像。

因为您有一个要用于此映像的 dockerfile,您可以直接指定它,请参阅此处的文档: https://docs.docker.com/compose/compose-file/compose-file-v3/

版本:“3.9” 服务: 网络应用程序: 建造: 上下文:./dir dockerfile:Dockerfile-alternate 参数: 版本号:1

作为一种好的做法,您应该提供一个自定义名称来表示您的工作脚本,而不是在 docker compose 文件中调用您的服务“redis”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2018-03-09
    • 2021-06-16
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多