集装箱芹菜工人将不会在docker-compose up上开始

时间:2019-03-22 14:22:31

标签: python-2.7 docker docker-compose celery

我对docker的了解非常有限,所以我来到这里发布此celery worker服务不会以以下错误开头:

  

错误:对于api_worker_1无法启动服务工作者:b'OCI运行时   创建失败:container_linux.go:348:启动容器进程   导致“ exec:\“ worker \”:在$ PATH中找不到可执行文件”:   未知”

DockerFile

# web
FROM python:2.7
RUN apt-get update
RUN apt-get install -y swig
RUN apt-get install -y libssl1.0-dev
RUN pip install --upgrade pip
ADD . /app
WORKDIR /app
CMD ["python", "-u","app.py"]

docker-compose.yml

version: '2' 
services:

  db:
    image: postgres
    restart: always
    volumes:
      - ./postgres-data:/var/lib/postgresql/data
    ports:
      - "5432:5432"

  web:
    restart: always
    build: .
    volumes:
      - ./web:/data/web
      - .:/app
    command: python -u app.py
    ports:
     - "5000:5000"

  rabbit:
    hostname: rabbit
    image: rabbitmq:latest
    environment:
      - RABBITMQ_DEFAULT_USER=guest
      - RABBITMQ_DEFAULT_PASS=guest
    ports:
      - "5672:5672"

  worker:
    restart: always
    build: .
    volumes:
      - .:/app
    command: celery worker -B -l info -A app.tasks.celery
    links:
      - db
      - rabbit
      - web
    depends_on:
      - web

查看工作者服务:

  worker:
    restart: always
    build: .
    volumes:
      - .:/app
    command: celery worker -B -l info -A app.tasks.celery

我没有从docker使用/安装celery。因为这是工人形象,而不是芹菜形象。

这正在与flask应用程序一起运行,并且最近正在运行。清理或删除图像和容器后。运行docker-compose builddocker-compose up会产生

  

OCI运行时创建失败:..

此后发生错误。

  

更新

我更新了问题的标题,因为此处的芹菜标题令人误解。这是一个工作服务,上面没有DockerFile。提供一项启动驻留在app/tasks/celery上的芹菜工作者的服务。

1 个答案:

答案 0 :(得分:2)

在docker-compose文件中,您为build: .web指定了相同的构建上下文(worker)。您上面发布的Dockerfile用于构建web映像和worker映像,显然该映像中未安装celery