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!"
|