#!/bin/bash # INSTALL SCRIPT # The install script is required for all templates. # It is used to install the service on the server. # It is called with the path to the server specific env file as an argument. source "$(dirname "$0")/_common.sh" # Required environment variables check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG" "VOLUME_NAME" "HOST_NAME" "HOST_PORT" # Create volume if it doesn't exist if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then echo "Volume ${VOLUME_NAME} does not exist, creating..." docker volume create "${VOLUME_NAME}" fi if ! docker volume inspect "${VOLUME_NAME}" &>/dev/null; then die "Failed to create volume ${VOLUME_NAME}" fi # Test Docker _check_docker_installed || die "Docker test failed, aborting installation..." # check can pull image on remote host and exit if fails docker pull "$IMAGE_REGISTRY/$IMAGE_REPO:$IMAGE_TAG" || die "Failed to pull image $IMAGE_REGISTRY/$IMAGE_REPO:$IMAGE_TAG" # remove and restart, as the env may have changed. bash ./stop.sh || die "Failed to stop container ${CONTAINER_NAME}" _remove_container $CONTAINER_NAME || die "Failed to remove container ${CONTAINER_NAME}" bash ./start.sh || die "Failed to start container ${CONTAINER_NAME}" echo "Installation of ${CONTAINER_NAME} complete" echo "You can access the service at http://${HOST_NAME}:${HOST_PORT}"