71 lines
1.7 KiB
Bash
71 lines
1.7 KiB
Bash
|
|
#!/bin/bash
|
|||
|
|
|
|||
|
|
# 加载环境变量
|
|||
|
|
source ../environment.sh
|
|||
|
|
|
|||
|
|
# 设置Nginx镜像名称(如果环境变量中未定义)
|
|||
|
|
if [ -z "${NGINX_IMAGE}" ]; then
|
|||
|
|
export NGINX_IMAGE="${REGISTRY_HOST}nginx:${DOMAIN}"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "开始构建Nginx镜像: ${NGINX_IMAGE}"
|
|||
|
|
|
|||
|
|
# 检查临时目录是否存在
|
|||
|
|
TEMP_DIR="temp_vhosts"
|
|||
|
|
if [ ! -d "$TEMP_DIR" ]; then
|
|||
|
|
echo "错误: $TEMP_DIR 目录不存在! 请先运行 replace_vars.sh 脚本"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 检查临时目录中是否有配置文件
|
|||
|
|
if [ -z "$(ls -A $TEMP_DIR)" ]; then
|
|||
|
|
echo "警告: $TEMP_DIR 目录为空,将使用空配置构建镜像"
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 修改Dockerfile以使用临时目录
|
|||
|
|
cat > Dockerfile.nginx.temp << EOF
|
|||
|
|
FROM nginx:latest
|
|||
|
|
|
|||
|
|
# 删除默认的nginx配置
|
|||
|
|
RUN rm -rf /etc/nginx/conf.d/*
|
|||
|
|
|
|||
|
|
# 复制处理后的vhosts配置到nginx配置目录
|
|||
|
|
COPY ${TEMP_DIR}/ /etc/nginx/conf.d/
|
|||
|
|
|
|||
|
|
# 设置时区
|
|||
|
|
ENV TZ=Asia/Shanghai
|
|||
|
|
|
|||
|
|
# 暴露端口
|
|||
|
|
EXPOSE 80 443
|
|||
|
|
|
|||
|
|
# 启动nginx
|
|||
|
|
CMD ["nginx", "-g", "daemon off;"]
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 构建Docker镜像
|
|||
|
|
docker build -t ${NGINX_IMAGE} -f Dockerfile.nginx.temp .
|
|||
|
|
|
|||
|
|
# 检查构建结果
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo "Nginx镜像构建成功: ${NGINX_IMAGE}"
|
|||
|
|
|
|||
|
|
# 推送到镜像仓库(如果需要)
|
|||
|
|
echo "推送镜像到仓库: ${NGINX_IMAGE}"
|
|||
|
|
docker push ${NGINX_IMAGE}
|
|||
|
|
|
|||
|
|
if [ $? -eq 0 ]; then
|
|||
|
|
echo "镜像推送成功!"
|
|||
|
|
else
|
|||
|
|
echo "警告: 镜像推送失败!"
|
|||
|
|
fi
|
|||
|
|
else
|
|||
|
|
echo "错误: Nginx镜像构建失败!"
|
|||
|
|
exit 1
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
# 清理临时文件
|
|||
|
|
rm -f Dockerfile.nginx.temp
|
|||
|
|
# 注意:不删除临时目录,以便用户可以继续检查替换结果
|
|||
|
|
# 如果需要清理,可以手动运行: rm -rf $TEMP_DIR
|
|||
|
|
|
|||
|
|
echo "Nginx镜像构建和推送完成!"
|