Мои знания в Docker довольно ограничены, поэтому я пришел сюда, и публикация этой службы для сельдерея не начнется со следующей ошибки:
ОШИБКА: для api_worker_1 Невозможно запустить сервисного работника: b'OCI runtime
Ошибка создания: 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"]
докер-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-compose build
и docker-compose up
дает
Ошибка создания среды выполнения OCI: ..
Ошибка после.
UPDATE
Я обновил заголовок вопроса, потому что название сельдерея вводит в заблуждение здесь. Это скорее рабочий сервис, на котором нет DockerFile
. Это услуга для запуска работника сельдерея, которая находится на app/tasks/celery
.