添加linux的支持

This commit is contained in:
孙小云 2025-12-06 16:43:16 +08:00
parent 8190269338
commit 1e4db4588c
4 changed files with 201 additions and 1 deletions

View File

@ -16,4 +16,7 @@ SIP_Password=wvp_sip_password
RecordSip=true
RecordPushLive=false
RecordPushLive=false
#服务器上放开这个注释
#REGISTRY=registry.t-aaron.com/

View File

@ -0,0 +1,82 @@
FROM registry.t-aaron.com/eclipse-temurin:17-jdk AS builder
EXPOSE 18978/tcp
EXPOSE 8116/tcp
EXPOSE 8116/udp
EXPOSE 8080/tcp
#RUN apt-get update && \
#DEBIAN_FRONTEND="noninteractive" \
#apt-get install -y --no-install-recommends \
#wget \
#cmake \
#maven \
#git \
#ca-certificates \
#tzdata \
#curl \
#libpcre3 \
#libpcre3-dev \
#zlib1g-dev \
#openssl \
#libssl-dev \
#gdb && \
#apt-get autoremove -y && \
#apt-get clean -y && \
#rm -rf /var/lib/apt/lists/*
## install jdk1.8
#RUN mkdir -p /opt/download
#WORKDIR /opt/download
#RUN if [ "$Platfrom" = "arm64" ]; \
#then \
#wget https://polaris-tian-generic.pkg.coding.net/qt/autopliot/jdk-8u411-linux-aarch64.tar.gz?version=latest --no-check-certificate -O jdk-8.tar.gz && \
#tar -zxvf /opt/download/jdk-8.tar.gz -C /usr/local/ --transform 's/jdk1.8.0_411/java/' && \
#rm /opt/download/jdk-8.tar.gz; \
#else \
#wget https://polaris-tian-generic.pkg.coding.net/qt/autopliot/jdk-8u202-linux-x64.tar.gz?version=latest --no-check-certificate -O jdk-8.tar.gz && \
#tar -zxvf /opt/download/jdk-8.tar.gz -C /usr/local/ --transform 's/jdk1.8.0_202/java/' && \
#rm /opt/download/jdk-8.tar.gz; \
#fi
#ENV JAVA_HOME /usr/local/java/
#ENV JRE_HOME ${JAVA_HOME}/jre
#ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
#ENV PATH ${JAVA_HOME}/bin:$PATH
RUN java -version && javac -version
#RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \
RUN apt-get update && \
apt-get install -y maven && \
rm -rf /var/lib/apt/lists/*
COPY docker/wvp/wvpcode /build
WORKDIR /build
RUN ls && mvn clean package -Dmaven.test.skip=true
WORKDIR /build/target
RUN mv wvp-pro-*.jar wvp.jar
FROM registry.t-aaron.com/eclipse-temurin:17-jre
RUN mkdir -p /opt/wvp
WORKDIR /opt/wvp
COPY --from=builder /build/target /opt/wvp
ENTRYPOINT ["java", "-Xms512m", "-Xmx1024m", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/wvp/", "-jar", "wvp.jar"]
#RUN mkdir -p /opt/wvp
#WORKDIR /opt/wvp
#COPY ./wvp /opt/wvp
#
#WORKDIR /home
#RUN cd /home && \
#git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git
#
#RUN cd /home/wvp-GB28181-pro && \
#mvn clean package -Dmaven.test.skip=true && \
#cp /home/wvp-GB28181-pro/target/*.jar /opt/wvp/wvp.jar
#
#WORKDIR /opt/wvp
#ENTRYPOINT ["java", "-Xms512m", "-Xmx1024m", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/ylcx/", "-jar", "wvp.jar", "--spring.config.location=/opt/ylcx/wvp/application.yml"]

View File

@ -0,0 +1,64 @@
#!/bin/bash
# 构建并推送 wvp 镜像到私有仓库
# 使用方法: 在 docker/wvp 目录下执行 ./build-and-push-wvp.sh
set -e
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# 项目根目录(脚本所在目录的上两级)
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
# 配置变量
REGISTRY="registry.t-aaron.com"
IMAGE_NAME="polaris-wvp"
VERSION="2.7.7"
PLATFORM="linux/amd64"
DOCKERFILE="Dockerfile.registry"
# 完整镜像名称
FULL_IMAGE_NAME="${REGISTRY}/${IMAGE_NAME}:${VERSION}"
echo "=========================================="
echo "开始构建 WVP 镜像"
echo "=========================================="
echo "脚本目录: ${SCRIPT_DIR}"
echo "项目根目录: ${PROJECT_ROOT}"
echo "镜像名称: ${FULL_IMAGE_NAME}"
echo "平台架构: ${PLATFORM}"
echo "Dockerfile: ${SCRIPT_DIR}/${DOCKERFILE}"
echo "=========================================="
# 检查 Dockerfile 是否存在
if [ ! -f "${SCRIPT_DIR}/${DOCKERFILE}" ]; then
echo "错误: 未找到 Dockerfile: ${SCRIPT_DIR}/${DOCKERFILE}"
exit 1
fi
# 检查 buildx 是否可用
if ! docker buildx version &> /dev/null; then
echo "错误: docker buildx 不可用"
echo "请先安装 docker buildx"
exit 1
fi
# 切换到项目根目录作为构建上下文
cd "${PROJECT_ROOT}"
# 构建并推送镜像
echo ""
echo "开始构建镜像..."
docker buildx build \
--no-cache \
--platform ${PLATFORM} \
-t ${FULL_IMAGE_NAME} \
-f docker/wvp/${DOCKERFILE} \
--push \
.
echo ""
echo "=========================================="
echo "构建完成!"
echo "镜像已推送到: ${FULL_IMAGE_NAME}"
echo "=========================================="

View File

@ -9,9 +9,21 @@ mac 本地构建过程:
2.2 修改docker-compose.yaml中使用wvp镜像的版本号
2.3 执行docker compose up -d
mac 发布流程
1 构建并推送镜像
1.1 cd到 docker/wvp目录下
1.2 修改build-and-push-wvp中的版本号
1.2 执行 ./build-and-push-wvp.sh
2 部署
2.1 将docker目录全部拷贝到需要部署到服务器
2.2 修改docker-compose.yaml中使用wvp镜像的版本号
2.3 在.env中添加REGISTRY=registry.t-aaron.com/
2.4 修改.env中其他的环境变量值
2.5 执行docker compose up -d
~~~~~~~~~~~以下内容忽略~~~~~~~~~
步骤1准备 buildx 环境
# 创建并启用 multiarch builder
docker buildx create --name multiarch --use
@ -54,6 +66,39 @@ docker rmi mysql:8
docker tag mysql:8-arm64-backup mysql:8
docker rmi mysql:8-arm64-backup
# ===== eclipse-temurin:17-jdk =====
# 备份本地 arm64 镜像
docker tag eclipse-temurin:17-jdk eclipse-temurin:17-jdk-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 eclipse-temurin:17-jdk
# 推送到私有仓库
docker tag eclipse-temurin:17-jdk registry.t-aaron.com/eclipse-temurin:17-jdk
docker push registry.t-aaron.com/eclipse-temurin:17-jdk
# 恢复本地 arm64 版本
docker rmi eclipse-temurin:17-jdk
docker tag eclipse-temurin:17-jdk-arm64-backup eclipse-temurin:17-jdk
docker rmi eclipse-temurin:17-jdk-arm64-backup
# ===== eclipse-temurin:17-jre =====
# 备份本地 arm64 镜像
docker tag eclipse-temurin:17-jre eclipse-temurin:17-jre-arm64-backup
# 拉取 amd64 版本
docker pull --platform linux/amd64 eclipse-temurin:17-jre
# 推送到私有仓库
docker tag eclipse-temurin:17-jre registry.t-aaron.com/eclipse-temurin:17-jre
docker push registry.t-aaron.com/eclipse-temurin:17-jre
# 恢复本地 arm64 版本
docker rmi eclipse-temurin:17-jre
docker tag eclipse-temurin:17-jre-arm64-backup eclipse-temurin:17-jre
docker rmi eclipse-temurin:17-jre-arm64-backup
# ===== ZLMediaKit =====
# 备份本地 arm64 镜像
docker tag zlmediakit/zlmediakit:master zlmediakit-master-arm64-backup
@ -80,6 +125,12 @@ docker buildx build \
-f docker/wvp/Dockerfile \
--push \
.
上述步骤已经写入脚本
cd /Users/sunpeng/workspace/stream-deploy/docker
chmod +x build-and-push-wvp.sh
./build-and-push-wvp.sh
步骤5修改 docker-compose.yml
将以下镜像地址修改为私有仓库地址:
# 第4行redis