It seemed that my Postgres database was not properly shut down when rebooting and when I tried to use docker-compose to start it again, the following message was shown in `docker logs`:
PANIC: could not locate a valid checkpoint record LOG: startup process (PID 23) was terminated by signal 6: Aborted LOG: aborting startup due to startup process failure LOG: database system is shut down LOG: database system was interrupted; last known up at 2017-09-14 08:22:04 UTC LOG: unexpected pageaddr B/68B26000 in log segment 000000010000000B0000006D, offset 11689984 LOG: invalid primary checkpoint record LOG: unexpected pageaddr B/688F2000 in log segment 000000010000000B0000006D, offset 9379840 LOG: invalid secondary checkpoint record
To fix this, first shut down this container (docker-compose down), then start the container in interactive mode:
daoyuan.li:~/Projects/magic/stock$ docker run -it -v /Users/daoyuan.li/Projects/magic/postgres_data:/var/lib/postgres/data postgres:9.6 /bin/bash root@c4d2fb7edcea:/# gosu postgres pg_resetxlog -f /var/lib/postgres/data Transaction log reset root@c4d2fb7edcea:/# exit
After the transaction log is reset, everything should be fine. Now you can start your containers again (docker-compose up -d).