初期データ込みのPostgresSQLコンテナを作成する
Dockerチョットデキルようになると、初期データ込みのPostgreSQL作れないか?と考えちゃいます。
Dockerfile作成
適当なディレクトリを作り、そこにDockerfileを作成します。 内容はこんな感じです。
FROM postgres:9.6 RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 COPY *.sql /docker-entrypoint-initdb.d/%
同ディレクトリに、01_createtbl.sqlを置きます。 内容はこんな感じです。
create table emp ( empid int primary key, empname varchar(80) ); insert into emp (empid, empname) values (1234, 'SCOTT'); insert into emp (empid, empname) values (5678, 'TIGER');
docker build
前述ディレクトリで、以下コマンド打ってビルドします。
docker build -t ex .
-tは、--tag listのこと。
これでdockerイメージが作成されます。
コンテナ作成
コンテナに割当する名前、先程のイメージ名を指定してコンテナを作成します。
docker run --name expostgres -p 5432:5432 -d ex
あとはコンテナを起動してpgAdminか何かで初期データが入っていることを確認します。