silverbullet/scripts/deploy_silverbullet_md.sh

50 lines
1.3 KiB
Bash
Executable File

#!/bin/bash -e
cd $(realpath $(dirname $(dirname $0)))
IMAGE_NAME="zefhemel/silverbullet:edge"
WEBSITE_SPACE="./website"
WEBSITE_PORT=3000
# Get the current image ID
BEFORE_PULL=$(docker images -q $IMAGE_NAME)
# Pull the Docker image
docker pull $IMAGE_NAME
# Get the new image ID
AFTER_PULL=$(docker images -q $IMAGE_NAME)
# Compare the image IDs
# if [ "$BEFORE_PULL" == "$AFTER_PULL" ]; then
# echo "The Docker image has not been updated. Done!"
# exit 0
# fi
echo "The Docker image has been updated, let's update the website content."
git pull
# Check if a silverbullet container is running already
if [ "$(docker ps -q -f name=silverbullet)" ]; then
echo "A silverbullet container is running, let's stop it."
docker kill silverbullet
docker rm silverbullet
fi
# Remove the old database
echo "Removing old databases"
rm -f $WEBSITE_SPACE/.silverbullet.db*
echo "Starting new silverbullet container"
docker run -d --name silverbullet -v $WEBSITE_SPACE:/space -e SB_READ_ONLY=1 -p $WEBSITE_PORT:3000 $IMAGE_NAME
echo "Waiting for the servers to start"
# Repeatedly try to connect to the server until it responds
until $(curl --output /dev/null --silent --head --fail http://localhost:$WEBSITE_PORT/); do
printf '.'
sleep 1
done
echo
echo "We're back up!"