[Infra/#1]: 컨테이너 실행을 위한 Docker 및 자동화 스크립트 추가 #2

Merged
pricelees merged 8 commits from infra/#1 into main 2025-06-27 04:34:30 +00:00
Showing only changes of commit 95f4acab65 - Show all commits

View File

@ -0,0 +1,111 @@
services:
controller:
image: apache/kafka:latest
container_name: controller
environment:
KAFKA_NODE_ID: 0
KAFKA_PROCESS_ROLES: controller
KAFKA_LISTENERS: CONTROLLER://:9093
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
broker-1:
image: apache/kafka:latest
container_name: broker-1
privileged: true
ports:
- "29092:9092"
- "29093:9093"
- "7071:7071"
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-1:19092,PLAINTEXT_HOST://localhost:29092,SSL://broker-1:19093,SSL_HOST://localhost:29093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
KAFKA_SSL_KEY_CREDENTIALS: password
KAFKA_NUM_PARTITIONS: 3
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
depends_on:
- controller
volumes:
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
- ../ssl:/etc/kafka/secrets
broker-2:
image: apache/kafka:latest
container_name: broker-2
privileged: true
ports:
- "39092:9092"
- "39093:9093"
- "7072:7071"
environment:
KAFKA_NODE_ID: 2
KAFKA_PROCESS_ROLES: broker
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-2:19092,PLAINTEXT_HOST://localhost:39092,SSL://broker-2:19093,SSL_HOST://localhost:39093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
KAFKA_SSL_KEY_CREDENTIALS: password
KAFKA_NUM_PARTITIONS: 3
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
depends_on:
- controller
volumes:
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
- ../ssl:/etc/kafka/secrets
broker-3:
image: apache/kafka:latest
container_name: broker-3
privileged: true
ports:
- "49092:9092"
- "49093:9093"
- "7073:7071"
environment:
KAFKA_NODE_ID: 3
KAFKA_PROCESS_ROLES: broker
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-3:19092,PLAINTEXT_HOST://localhost:49092,SSL://broker-3:19093,SSL_HOST://localhost:49093
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
KAFKA_SSL_KEY_CREDENTIALS: password
KAFKA_NUM_PARTITIONS: 3
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
depends_on:
- controller
volumes:
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
- ../ssl:/etc/kafka/secrets