Programming/Server

[DockerCompose] confluentinc/cp-kafka server.properties 설정

bisi 2020. 5. 16. 12:43

docker compose로 주키퍼 카프카 구축시, 

로컬에서 구축하는 것처럼 server.properties 파일을 도커 외부에서도 확인하고 싶을때가 있다. 

 

이를 설정하기 위해선,

외부에 server.properties파일을 미리 생성해주고, volum 환경 변수를 아래와 같이 설정해 주면된다.

 

...
volumes:
	/home/config/server.properties:/etc/kafka/server.properties
    
...
/home/config/server.properties : docker-compose 외부에 설정할 파일 경로
/etc/kafka/server.properties  : docker-compose 내부에 설정된 properites 경로 
docker-compose.yml git 바로가기 

 

 

주의해야할 점은, server.properties 파일을 미리 만들어 놓고(파일안에 내용까지 동일하게 있어야함) docker-compose를 실행시켜야한다.

만약 만들어 놓지 않고 실행하면, 폴더로 생성되거나 아래와 같은 오류가 발생한다.

ERROR: for docker-compose_kafka1_1  Cannot start service kafka1: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.g
Creating docker-compose_kafka2_1      ... done
Creating docker-compose_kafka3_1      ... done
eck if the specified host path exists and is the expected type

ERROR: for kafka1  Cannot start service kafka1: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\
\"/home/equala/conf1/server.properties\\\" to rootfs \\\"/var/lib/docker/overlay2/18d60a4c2a4e874705d3dd0758cf749c2a722e8f8e9b1f8a9c1c05b98dcb3018/merged\\\" at \\\"/var/lib/docker/overlay2/18d60a4c2a4e874705d3d
d0758cf749c2a722e8f8e9b1f8a9c1c05b98dcb3018/merged/etc/kafka/server.properties\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specif
ied host path exists and is the expected type
ERROR: Encountered errors while bringing up the project.

 

꼭꼭 docker-compose.yml 수정 및 실행 전에 server.properties 파일을 미리 생성하는 것 잊지말자!

 

 

PS.......

Docker-Compose 실행되는 server.properties 항목을 수정하고, 연동하여 파일의 내용은 확인할 수 있지만,

Docker-Compose로 실행할때 server.properties를 적용해서 올라가는 것 같진 않다...;;;;; 

 

confluent/cp-kafka에서만 그런지는 모르겠지만, Config 설정이 필요하다면 docker-compose.yml의 환경변수로 설정해주는 것이 제일 확실하다! 자세한건 docker-compose를 활용한 zookeepr, kafka 구축 yml을 확인하면된다.

[Programming/Server] - [Docker] Docker-Compose를 활용한 Zookeeper, Kafka 구축