おじさんエンジニアの日記

おじさんエンジニアがWeb関連の技術、ガンプラのことを書くブログ

【Docker】 Postgres(9.3)の入ったコンテナを作る

今回は、DockerFileでPostgresをインストールさせようと思います。

で、以下のURLにあるものをそのまま利用したらバージョンが8.3が入りました。
CentOS/CentOS-Dockerfiles · GitHub

できれば9系を入れたかったので、自分で作ってみました。

以前やったSSHのDockerFileをベースにして、Fileを作りました。

できたのがこれ。

FROM centos:centos6

#----------------------------------------------------------
# 基本設定
#----------------------------------------------------------
RUN yum -y install https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN yum -y install curl sudo unzip wget tar
RUN yum -y update

# rootのパスワード設定
RUN echo 'root:root' | chpasswd

# ホスト名を設定
ENV HOSTNAME postgres

# プロンプト変数([root@localhost ~]みたいなやつ)になるように設定
RUN echo "export PS1='[\u@\h \W]# '" >> /etc/profile

# タイムゾーンを日本に
RUN echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock
RUN rm -f /etc/localtime
RUN ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# 言語を日本語に
RUN sed -ri 's/en_US/ja_JP/' /etc/sysconfig/i18n
RUN yum -y clean all


#----------------------------------------------------------
# SSH
#----------------------------------------------------------

# インストール
RUN yum -y install openssh-server

# 設定
RUN sed -ri 's/^#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/^UsePAM yes/UsePAM no/' /etc/ssh/sshd_config

RUN /etc/init.d/sshd start

#----------------------------------------------------------
# postgresql
#----------------------------------------------------------
RUN rpm -i http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
RUN yum -y install postgresql93-server postgresql93-contrib
RUN mv /etc/init.d/postgresql-9.3 /etc/init.d/postgresql
RUN /etc/init.d/postgresql initdb
RUN echo "host    all             all             0.0.0.0/0               trust" >> /var/lib/pgsql/9.3/data/pg_hba.conf
RUN echo "listen_addresses='*'" >> /var/lib/pgsql/9.3/data/postgresql.conf
RUN chkconfig postgresql on

#----------------------------------------------------------
# ポート
#----------------------------------------------------------
EXPOSE 22 5432

CMD /sbin/init

上記は、インストールとインストール後の必要最低限のことをさせています。


ファイルができたらビルド、起動します。

docker build --rm -t postgres .
docker run -p 2222:22 -p 15432:5432 -d postgres

あとはコンテナにSSHで入りDBを作れば普通に使えると思います。