56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
#!/bin/bash
 | 
						|
 | 
						|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | 
						|
LOG_FILE=${SCRIPT_DIR}/build-local-docker-image.log
 | 
						|
ERROR=""
 | 
						|
IMAGE_NAME="vben-admin-local"
 | 
						|
 | 
						|
function stop_and_remove_container() {
 | 
						|
    # Stop and remove the existing container
 | 
						|
    docker stop ${IMAGE_NAME} >/dev/null 2>&1
 | 
						|
    docker rm ${IMAGE_NAME} >/dev/null 2>&1
 | 
						|
}
 | 
						|
 | 
						|
function remove_image() {
 | 
						|
    # Remove the existing image
 | 
						|
    docker rmi vben-admin-pro >/dev/null 2>&1
 | 
						|
}
 | 
						|
 | 
						|
function install_dependencies() {
 | 
						|
    # Install all dependencies
 | 
						|
    cd ${SCRIPT_DIR}
 | 
						|
    pnpm install || ERROR="install_dependencies failed"
 | 
						|
}
 | 
						|
 | 
						|
function build_image() {
 | 
						|
    # build docker
 | 
						|
    docker build ../../ -f Dockerfile -t ${IMAGE_NAME} || ERROR="build_image failed"
 | 
						|
}
 | 
						|
 | 
						|
function log_message() {
 | 
						|
    if [[ ${ERROR} != "" ]];
 | 
						|
    then
 | 
						|
        >&2 echo "build failed, Please check build-local-docker-image.log for more details"
 | 
						|
        >&2 echo "ERROR: ${ERROR}"
 | 
						|
        exit 1
 | 
						|
    else
 | 
						|
        echo "docker image with tag '${IMAGE_NAME}' built sussessfully. Use below sample command to run the container"
 | 
						|
        echo ""
 | 
						|
        echo "docker run -d -p 8010:8080 --name ${IMAGE_NAME} ${IMAGE_NAME}"
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
echo "Info: Stopping and removing existing container and image" | tee ${LOG_FILE}
 | 
						|
stop_and_remove_container
 | 
						|
remove_image
 | 
						|
 | 
						|
echo "Info: Installing dependencies" | tee -a ${LOG_FILE}
 | 
						|
install_dependencies 1>> ${LOG_FILE} 2>> ${LOG_FILE}
 | 
						|
 | 
						|
if [[ ${ERROR} == "" ]]; then
 | 
						|
    echo "Info: Building docker image" | tee -a ${LOG_FILE}
 | 
						|
    build_image 1>> ${LOG_FILE} 2>> ${LOG_FILE}
 | 
						|
fi
 | 
						|
 | 
						|
log_message | tee -a ${LOG_FILE}
 |