0x01解决时区问题
添加tzdata可以解决时间问题
Dockfile:
FROM postgres:12.3-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories &&\
apk add --no-cache tzdata &&\
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
0x02备份
postgres镜像装有crond,可以用crond直接备份
由于备份的库和时间有可能是随时修改的,所以可以重写command,在运行时设置好
注意用户问题:crond只能用root用户运行,postgres只能用postgres用户运行
docker-compose.yml:
version: '3.6'
services:
pg:
build:
context: ./
volumes:
- bk:/bk
command:
- /bin/sh
- -c
- |
echo '0 3 * * * pg_dump -U postgres -FC 备份的库 > /bk/备份的库_$$(date +%Y%m%d%H%M%S)' > /etc/crontabs/root
crond
su postgres -c postgres