Последние два дня у меня была битва с Докером, поэтому я очень надеюсь, что кто-нибудь сможет мне помочь.Что бы я хотел: один Docker с запущенным экземпляром Kafka и другой Docker со скриптом Python для получения.Я хочу иметь композитный файл, который соберет все три изображения (Kafka, Zookeeper и Python) и немедленно запустит мой файл Python.Проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю docker, контейнеры Kafka и Zookeeper работают, но контейнер Python сразу же существует.Может кто-нибудь дать мне способ, чтобы контейнер Python продолжал работать, чтобы я мог войти в bash?
Команда: docker-compose down && docker-compose -f docker-compose-swarm.yml up -d
docker-compose-swarm.yml file:
version: '3.2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka:latest
ports:
- target: 9094
published: 9094
protocol: tcp
mode: host
environment:
HOSTNAME_COMMAND: "docker info | grep ^Name: | cut -d' ' -f 2"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: INSIDE://:9092,OUTSIDE://_{HOSTNAME_COMMAND}:9094
KAFKA_LISTENERS: INSIDE://:9092,OUTSIDE://:9094
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
KAFKA_CREATE_TOPICS: "rontgen_images"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
python:
build:
context: .
dockerfile: DockerfilePython
DockerfilePython:
FROM python
RUN apt-get update && apt-get install -y vim
RUN pip install requests kafka-python
COPY retriever-openi-kafka.py .
CMD ['python', './retriever-openi-kafka.py']
docker ps -a:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1bd71d6720c wurstmeister/zookeeper "/bin/sh -c '/usr/sb…" 43 seconds ago Up 41 seconds 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp kafkadocker_zookeeper_1
81d4b03f0aa7 kafkadocker_python "/bin/sh -c '['pytho…" 43 seconds ago Exited (127) 42 seconds ago kafkadocker_python_1
44ca9f264340 wurstmeister/kafka:latest "start-kafka.sh" 43 seconds ago Up 42 seconds 0.0.0.0:9094->9094/tcp kafkadocker_kafka_1