実行手順
1. 以下のDockerfileを使用してPostgreSQLのpg_dumpをインストールしたイメージを作成します。Dockerfile
FROM alpine:3.15
RUN apk --no-cache add postgresql-client \
&& mkdir /data
WORKDIR /data
VOLUME ["/data"]
ENV PG_HOST=localhost \
PG_USER=postgres \
PGPASSWORD=postgres \
PG_DB=postgres \
PG_PORT=5432 \
BASENAME=backup \
POSTFIX=_
CMD ["/bin/sh", "-c", "/usr/bin/pg_dump -h ${PG_HOST} -p ${PG_PORT} -U ${PG_USER} ${PG_DB} | gzip > /data/${BASENAME}${POSTFIX}.dmp.gz"]
・イメージビルド用コマンド
docker build --no-cache -t mypgdump .
2. 以下のコマンドでコンテナ内のpg_dumpコマンドを実行します。
適宜、環境変数を変更してください。
docker run --rm -it -e PGPASSWORD=mypostgres -e PG_HOST=myhost -e PG_PORT=5432 -e PG_USER=postgres -e PG_DB=mydb -e BASENAME=backup -e POSTFIX=`/bin/date '+%Y%m%d-%H%M'` -v `pwd`:/data mypgdump
関連情報
・KubernetesでCronJobとして動作させる場合は、以下のページを参照してください。Microk8sでCronJobを使用してPostgreSQLのバックアップを行う
0 件のコメント:
コメントを投稿