docker/start/nginx.sh

120 lines
4.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
source ../environment.sh
# 检查并停止/删除已存在的容器
if docker ps -a | grep -q ${NGINX_NAME}; then
echo "停止并删除已存在的 ${NGINX_NAME} 容器..."
docker stop ${NGINX_NAME} >/dev/null 2>&1
docker rm ${NGINX_NAME} >/dev/null 2>&1
fi
# 准备 docker run 命令
DOCKER_RUN_CMD="docker run --pull always -d \
--name ${NGINX_NAME} \
--network ${NETWORK} \
--add-host HOSTNAMEIP:host-gateway \
-p ${NGINX_HTTP_PORT}:80 \
-p ${NGINX_HTTPS_PORT}:443 \
--env TZ=Asia/Shanghai \
--memory ${NGINX_MEMORY} \
--volume ${STREAM_DATA}:/data/recording \
--volume ${SRS_DATA}:/data/srs"
# 如果配置了证书,添加证书挂载
# if [ ! -z "${PEM_PATH}" ] && [ ! -z "${KEY_PATH}" ]; then
# echo "检测到证书配置,将挂载证书文件..."
# if [ ! -f "${PEM_PATH}" ] || [ ! -f "${KEY_PATH}" ]; then
# echo "错误:证书文件不存在!"
# exit 1
# fi
# DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
# --volume ${PEM_PATH}:/etc/nginx/t-aaron.com.pem \
# --volume ${KEY_PATH}:/etc/nginx/t-aaron.com.key"
# fi
# 如果配置了证书,添加证书挂载
if [ ! -z "${DSP_PEM_PATH}" ] && [ ! -z "${DSP_KEY_PATH}" ]; then
echo "检测到DSP证书配置将挂载证书文件..."
# if [ ! -f "${DSP_PEM_PATH}" ] || [ ! -f "${DSP_KEY_PATH}" ]; then
# echo "错误DSP证书文件不存在"
# echo "PEM文件路径: ${DSP_PEM_PATH}"
# echo "KEY文件路径: ${DSP_KEY_PATH}"
# exit 1
# fi
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
--mount type=bind,source=${DSP_PEM_PATH},target=/etc/nginx/dsp.pem,readonly \
--mount type=bind,source=${DSP_KEY_PATH},target=/etc/nginx/dsp.key,readonly"
fi
if [ ! -z "${HHZ_PEM_PATH}" ] && [ ! -z "${HHZ_KEY_PATH}" ]; then
echo "检测到HHZ证书配置将挂载证书文件..."
# if [ ! -f "${HHZ_PEM_PATH}" ] || [ ! -f "${HHZ_KEY_PATH}" ]; then
# echo "错误HHZ证书文件不存在"
# echo "PEM文件路径: ${HHZ_PEM_PATH}"
# echo "KEY文件路径: ${HHZ_KEY_PATH}"
# exit 1
# fi
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
--mount type=bind,source=${HHZ_PEM_PATH},target=/etc/nginx/hhz.pem,readonly \
--mount type=bind,source=${HHZ_KEY_PATH},target=/etc/nginx/hhz.key,readonly"
fi
if [ ! -z "${MINIO_PEM_PATH}" ] && [ ! -z "${MINIO_KEY_PATH}" ]; then
echo "检测到MINIO证书配置将挂载证书文件..."
# if [ ! -f "${MINIO_PEM_PATH}" ] || [ ! -f "${MINIO_KEY_PATH}" ]; then
# echo "错误MINIO证书文件不存在"
# echo "PEM文件路径: ${MINIO_PEM_PATH}"
# echo "KEY文件路径: ${MINIO_KEY_PATH}"
# exit 1
# fi
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
--mount type=bind,source=${MINIO_PEM_PATH},target=/etc/nginx/minio.pem,readonly \
--mount type=bind,source=${MINIO_KEY_PATH},target=/etc/nginx/minio.key,readonly"
fi
if [ ! -z "${OIDC_PEM_PATH}" ] && [ ! -z "${OIDC_KEY_PATH}" ]; then
echo "检测到OIDC证书配置将挂载证书文件..."
# if [ ! -f "${OIDC_PEM_PATH}" ] || [ ! -f "${OIDC_KEY_PATH}" ]; then
# echo "错误OIDC证书文件不存在"
# echo "PEM文件路径: ${OIDC_PEM_PATH}"
# echo "KEY文件路径: ${OIDC_KEY_PATH}"
# exit 1
# fi
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
--mount type=bind,source=${OIDC_PEM_PATH},target=/etc/nginx/oidc.pem,readonly \
--mount type=bind,source=${OIDC_KEY_PATH},target=/etc/nginx/oidc.key,readonly"
fi
if [ ! -z "${SRS_PEM_PATH}" ] && [ ! -z "${SRS_KEY_PATH}" ]; then
echo "检测到SRS证书配置将挂载证书文件..."
# if [ ! -f "${SRS_PEM_PATH}" ] || [ ! -f "${SRS_KEY_PATH}" ]; then
# echo "错误SRS证书文件不存在"
# echo "PEM文件路径: ${SRS_PEM_PATH}"
# echo "KEY文件路径: ${SRS_KEY_PATH}"
# exit 1
# fi
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} \
--mount type=bind,source=${SRS_PEM_PATH},target=/etc/nginx/srs.pem,readonly \
--mount type=bind,source=${SRS_KEY_PATH},target=/etc/nginx/srs.key,readonly"
fi
echo "镜像名字------"
echo ${NGINX_IMAGE}
# 添加镜像名称并运行容器
DOCKER_RUN_CMD="${DOCKER_RUN_CMD} ${NGINX_IMAGE}"
# 执行 docker run 命令
echo "启动 Nginx 容器..."
echo ${DOCKER_RUN_CMD}
eval ${DOCKER_RUN_CMD}
# 检查容器是否成功启动
if [ $? -eq 0 ]; then
echo "Nginx 容器启动成功!"
docker ps | grep ${NGINX_NAME}
else
echo "错误Nginx 容器启动失败!"
exit 1
fi