# Postgresql A database for all those awesome services you'll be running. ## Install / Update / Run Script Setup a generic script that'll auto update, build a container and launch it. You should only run this script at first launch and/or when you're looking for updates. If you are running your operating system from a Micro SD Card, You may wish to store your data directory on a [USB drive](../hardware/usb-flash-drive.md) to reduce the number of writes to the SD card. If you do so, don't forget to change the volume mount path when starting the docker container. ``` bash # Create directory for postgres to store data. # Alternatively, create a directory on a USB drive mkdir -p /var/postgres/data cat > /scratch/docker/postgres.sh << EOF #!/bin/bash VERSION="" ARCH=\`arch\` # Cleanup arch/container image here. if [ \$ARCH == "aarch64" ] then echo "64bit arm" VERSION="arm64v8/postgres:latest" else echo "32bit arm" VERSION="arm32v7/postgres:latest" fi docker pull \$VERSION # Cleanup existing container. docker stop postgres docker rm postgres # Re-run/create container with latest image. # Don't forget to change the volume mount path # if you changed it above. # # Please change user and password below to something # approrpriate to your installation. docker run \\ --name postgres \\ --restart unless-stopped \\ --net docker-private \\ --ip 172.30.12.12 \\ -e TZ=UTC \\ -e DEBUG=1 \\ -e POSTGRES_USER=mypostgres -e POSTGRES_PASSWORD=test1234 \\ -v /var/postgres/data:/var/lib/postgresql/data \\ \$VERSION EOF chmod a+x /scratch/docker/postgres.sh ``` ## Run Postgres Simply execute ```/scratch/docker/postgres.sh``` to update/run Postgres.