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}
 |