46 lines
1.0 KiB
Bash
46 lines
1.0 KiB
Bash
#!/bin/bash
|
||
|
||
set -e
|
||
|
||
# 项目目录名
|
||
APP_DIR="record-app"
|
||
IMAGE_NAME="recorder-app"
|
||
CONTAINER_NAME="recorder-app"
|
||
PORT=25190
|
||
|
||
# 1. 检查 Docker
|
||
if ! command -v docker &> /dev/null; then
|
||
echo "Docker 未安装,正在安装..."
|
||
sudo apt update
|
||
sudo apt install -y docker.io
|
||
sudo systemctl enable --now docker
|
||
fi
|
||
|
||
# 2. 检查 Docker Compose(可选)
|
||
if ! command -v docker-compose &> /dev/null; then
|
||
echo "Docker Compose 未安装,正在安装..."
|
||
sudo apt install -y docker-compose
|
||
fi
|
||
|
||
# 3. 构建镜像
|
||
echo "正在构建 Docker 镜像..."
|
||
cd $APP_DIR
|
||
docker build -t $IMAGE_NAME .
|
||
|
||
# 4. 停止并删除旧容器
|
||
if docker ps -a | grep -q $CONTAINER_NAME; then
|
||
echo "停止并删除旧容器..."
|
||
docker stop $CONTAINER_NAME || true
|
||
docker rm $CONTAINER_NAME || true
|
||
fi
|
||
|
||
# 5. 启动新容器
|
||
echo "启动新容器..."
|
||
docker run -d \
|
||
--name $CONTAINER_NAME \
|
||
--restart always \
|
||
-p $PORT:3000 \
|
||
--env-file .env.production \
|
||
$IMAGE_NAME
|
||
|
||
echo "部署完成!请访问 http://<你的服务器IP或域名>:$PORT" |