silverbullet/scripts/deploy_silverbullet_md.sh

50 lines
1.3 KiB
Bash
Raw Normal View History

2024-01-28 17:22:40 +08:00
#!/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
2024-01-28 17:35:37 +08:00
if [ "$BEFORE_PULL" == "$AFTER_PULL" ]; then
echo "The Docker image has not been updated. Done!"
exit 0
fi
2024-01-28 17:22:40 +08:00
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"
2024-01-28 17:35:37 +08:00
docker run -d --name silverbullet --restart unless-stopped -v $WEBSITE_SPACE:/space -e SB_READ_ONLY=1 -p $WEBSITE_PORT:3000 $IMAGE_NAME
2024-01-28 17:22:40 +08:00
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!"