作成したいデータベース、ユーザやネットワークの設定は適宜変更します。
Dockerfile
FROM resin/raspberry-pi-alpine:3.6
ENV LANG=ja_JP.utf8 \
PGDATA=/var/lib/postgresql/data
RUN apk --no-cache add postgresql sudo \
&& mkdir -p "$PGDATA" \
&& chown -R postgres "$PGDATA" \
&& chmod 700 "$PGDATA" \
&& mkdir -p /run/postgresql \
&& chown -R postgres /run/postgresql \
&& chmod 775 /run/postgresql \
&& sudo -u postgres initdb --encoding=UTF8 --no-locale -D "$PGDATA" \
&& sudo -u postgres pg_ctl -D "$PGDATA" -o "-c listen_addresses='localhost'" -w start \
&& echo $'CREATE USER docker; \
ALTER USER docker WITH PASSWORD '\''docker'\''; \
CREATE DATABASE docker; \
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;' > /tmp/setupdb.sh \
&& psql --username postgres -f /tmp/setupdb.sh \
&& sudo -u postgres pg_ctl -D "$PGDATA" -m fast -w stop \
&& rm /tmp/setupdb.sh \
&& echo "listen_addresses = '*'" >> /var/lib/postgresql/data/postgresql.conf \
&& echo "port = 5432" >> /var/lib/postgresql/data/postgresql.conf \
&& echo "host all all 192.168.1.0/24 password" >> /var/lib/postgresql/data/pg_hba.conf
VOLUME /var/lib/postgresql/data
EXPOSE 5432
CMD ["sudo", "-u", "postgres", "postgres", "-D", "/var/lib/postgresql/data"]
○データを保持するnamed volumeを作成する
docker volume create dbdata
○イメージのビルド
docker build -t rpi-pg .
○コンテナの実行
docker run --rm -dit -p 5432:5432 -v dbdata:/var/lib/postgresql/data rpi-pg
○named volumeの使用サイズを調べる
docker system df -v
※Local Volumes space usageセクションの後に使用サイズが表示されます○補足
動作環境 Raspberry Pi 3 Model B / Raspbian GNU/Linux 9 (stretch) / Docker 17.05.0-ce
Dockerイメージサイズ 101MB
○関連情報
Raspberry Pi上のDockerでphpPgAdminのイメージを構築する
Raspbian GNU/Linux 9 (stretch)上にDocker CEをインストールする
0 件のコメント:
コメントを投稿