가장 빨리 만나는 Docker 17장 - 3. PostgreSQL 데이터베이스 Dockerfile 작성하기
저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
Docker로 Ruby on Rails 애플리케이션 구축하기
이재홍 http://www.pyrasis.com 2014.08.02 ~ 2014.09.20
PostgreSQL 데이터베이스 Dockerfile 작성하기
이제 데이터베이스 이미지를 생성합니다. postgresql 디렉터리를 생성하고 다음 내용을 Dockerfile로 저장합니다.
~$ mkdir postgresql
~$ cd postgresql
~/postgresql/Dockerfile
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get install -y postgresql-9.3
WORKDIR /etc/postgresql/9.3/main
RUN sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" postgresql.conf
RUN echo "host all all 0.0.0.0/0 password" >> pg_hba.conf
EXPOSE 5432
ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT /entrypoint.sh
apt-get update
로 패키지 목록을 최신 상태로 업데이트한 뒤 postgresql-9.3 패키지를 설치합니다.sed
로 /etc/postgresql/9.3/main 디렉터리의 postgresql.conf 파일 내용을 수정합니다. #listen_addresses = ‘localhost’ 부분을 listen_addresses = ‘*‘으로 수정합니다. 이 부분을 수정하지 않으면 외부에서 PostgreSQL에 접속할 수 없습니다.- pg_hba.conf 파일에 host all all 0.0.0.0/0 password를 추가하여 외부에서 접속했을 때는 비밀번호로 인증하도록 설정합니다.
- entrypoint.sh 파일을 추가한 뒤 실행할 수 있도록 권한을 설정합니다.
- EXPOSE에 5432을 설정하여 5432번 포트에 접속할 수 있도록 합니다.
- ENTRYPOINT에 /entrypoint.sh 파일을 설정하여 컨테이너가 시작되었을 때 스크립트 파일을 실행합니다.