У меня есть следующий код Python:
from data_pipeline.scraper_processor import ScraperProcessor
def main():
print("Welcome to The Main function")
sp = ScraperProcessor()
sp.parse_message()
if __name__ == "__main__":
main()
Где ScraperProcessor - это следующий класс:
from data_pipeline.Account import Account
from typing import List
from kafka import KafkaConsumer
class ScraperProcessor:
def __init__(self):
self._consumer = KafkaConsumer('test',bootstrap_servers='kafka:9092')
У меня есть следующий Dockerfile:
FROM python:3.5-alpine3.9
ADD . /app
WORKDIR /app
RUN pip install pipenv
RUN pipenv install --system --deploy --ignore-pipfile
CMD ["python","main.py"]
и следующий файл компоновки Docker:
version: '3.1'
services:
postgres_db:
image: postgres
restart: always
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
POSTGRES_DB: default_db
ports:
- 54320:5432
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
parse-engine:
build: .
depends_on:
- "kafka"
- "postgres_db"
У меня есть все три файла - Dockerfile, файл Docker-compose и файл main.py в корневом каталоге моего проекта, однако, когда я запускаю все это сdocker-compose up
postgres_db и сервер kafka, кажется, работают должным образом, но контейнер dockerized python немедленно выходит из системы:
leumiprocessor_parse-engine_1 exited with code 0
Не могли бы вы помочь мне понять, что я делаю здесь неправильно?