# 登录远程服务器执行docker命令 ssh user@remoteServer << EOF set -e
cd /home/xxx/project # 停止容器 if docker ps -a --format '{{.Names}}' | grep -q "^xxx-project$"; then echo"Stopping container xxx-project..." docker stop xxx-project wait if [ $? -eq 0 ]; then echo"Container stopped successfully." else echo"Failed to stop container." exit 1 fi else echo"Container xxx-project not found, skipping stop operation." fi
# 删除容器 if docker ps -a --format '{{.Names}}' | grep -q "^xxx-project$"; then echo"Removing container xxx-project..." docker rm xxx-project wait if [ $? -eq 0 ]; then echo"Container removed successfully." else echo"Failed to remove container." exit 1 fi else echo"Container xxx-project not found, skipping remove operation." fi
# 删除镜像 if docker images --format '{{.Repository}}' | grep -q "^xxx-project$"; then echo"Removing image xxx-project..." docker rmi xxx-project wait if [ $? -eq 0 ]; then echo"Image removed successfully." else echo"Failed to remove image." exit 1 fi else echo"Image xxx-project not found, skipping remove operation." fi
# 构建镜像
echo"Building image xxx-project..." docker build -f Dockerfile -t xxx-project . wait if [ $? -eq 0 ]; then echo"Image built successfully." else echo"Failed to build image." fi
# 运行容器
echo"Running container xxx-project..." docker run -d --name xxx-project -p 9401:9401 -v /home/xxx/project/logs:/app/xxx/project/logs --restart=always xxx-project wait if [ $? -eq 0 ]; then echo"Container started successfully." else echo"Failed to start container." fi
# 查看容器日志
echo"Showing container logs..." docker logs -f --tail 200 xxx-project if [ $? -eq 0 ]; then echo"Container logs displayed successfully." else echo"Failed to display container logs." fi
EOF
记录下遇到的小问题: 容器启动后,日志显示
1 2 3 4
no main manifest attribute, in xxx.jar no main manifest attribute, in xxx.jar no main manifest attribute, in xxx.jar no main manifest attribute, in xxx.jar
org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0