12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/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}
|