로딩
요청 처리 중입니다...

93. [Docker] 컨테이너 Singleton 패턴 사용하기

 93. [Docker] 컨테이너 Singleton 패턴 사용하기

이번 포스트는 컨테이너 실행의 Singleton 패턴을 설명해보고자 한다. 사실 이름은 거창한데 기능은 그렇게 거창하지는 않다.

컨테이너가 시작될 때 특정 명령어들을 수행하도록 설정할 수 있는 명령어는 Cmd, Entrypoint가 있다. 근데 문제는 컨테이너가 재시작될 때마다 매번 실행한다는 점이 마음에 들지 않는다.

나는 컨테이너가 생성되고 첫 번째 시작에서만 수행하도록 하고 싶은데, Entrypoint나 Cmd에 설정하면 매번 실행되기 때문에 내가 의도한대로 동작하지 않는다. 예시를 들어보자.

필자는 mongoDB 컨테이너를 구동하려고 하는데, 컨테이너가 최초로 실행되었을 때 한번만 사용자 계정을 생성하고 싶다. 그래서 필자는 컨테이너의 entrypoint.sh에 아래와 같이 내용을 넣었다. 1 2 3 4 5 6 7 8 9 #!

/bin/bash mongod --shardsvr & until curl -s 127.0.0.1:27018; do echo "Mongod is initi...