ref: 删除无用部署脚本
This commit is contained in:
parent
3fbda0bdd4
commit
5d00bf3404
35
Dockerfile
35
Dockerfile
@ -1,35 +0,0 @@
|
||||
FROM ubuntu:latest
|
||||
|
||||
# 使用阿里云源
|
||||
RUN sed -i 's/ports.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
|
||||
sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list && \
|
||||
sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
|
||||
|
||||
# 安装必要的依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
wget \
|
||||
unzip \
|
||||
xz-utils \
|
||||
zip \
|
||||
libglu1-mesa \
|
||||
curl \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 创建非root用户
|
||||
RUN useradd -ms /bin/bash flutter_user
|
||||
RUN adduser flutter_user sudo
|
||||
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
|
||||
|
||||
# 克隆Flutter并设置权限
|
||||
RUN git clone https://github.com/flutter/flutter.git /flutter && \
|
||||
chown -R flutter_user:flutter_user /flutter
|
||||
|
||||
# 设置环境变量
|
||||
ENV PATH="/flutter/bin:${PATH}"
|
||||
|
||||
# 切换用户并配置Flutter
|
||||
USER flutter_user
|
||||
WORKDIR /home/flutter_user
|
||||
RUN flutter config --enable-windows-desktop
|
||||
@ -1,52 +0,0 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
# 设置环境变量
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV FLUTTER_VERSION=3.24.0
|
||||
ENV FLUTTER_HOME=/flutter
|
||||
ENV PATH=$PATH:$FLUTTER_HOME/bin
|
||||
|
||||
# 安装必要的依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl \
|
||||
git \
|
||||
unzip \
|
||||
xz-utils \
|
||||
zip \
|
||||
libglu1-mesa \
|
||||
cmake \
|
||||
ninja-build \
|
||||
pkg-config \
|
||||
libgtk-3-dev \
|
||||
liblzma-dev \
|
||||
libstdc++-12-dev \
|
||||
mingw-w64 \
|
||||
gcc-mingw-w64 \
|
||||
g++-mingw-w64 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 下载并安装Flutter
|
||||
RUN cd /tmp && curl -O https://mirrors-i.tuna.tsinghua.edu.cn/flutter/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz \
|
||||
&& tar xf flutter_linux_${FLUTTER_VERSION}-stable.tar.xz \
|
||||
&& ls -la \
|
||||
&& rm -rf /flutter \
|
||||
&& mv flutter /flutter \
|
||||
&& rm flutter_linux_${FLUTTER_VERSION}-stable.tar.xz
|
||||
|
||||
# 预下载Flutter依赖
|
||||
RUN flutter precache
|
||||
|
||||
# 修复Git权限问题
|
||||
RUN git config --global --add safe.directory /flutter
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
|
||||
# 复制项目文件
|
||||
COPY . .
|
||||
|
||||
# 获取依赖
|
||||
RUN flutter pub get
|
||||
|
||||
# 构建Windows版本
|
||||
CMD ["flutter", "build", "windows"]
|
||||
@ -1,53 +0,0 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
# 设置环境变量
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV FLUTTER_VERSION=3.24.0
|
||||
ENV FLUTTER_HOME=/flutter
|
||||
ENV PATH=$PATH:$FLUTTER_HOME/bin
|
||||
|
||||
# 安装必要的依赖
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl \
|
||||
git \
|
||||
unzip \
|
||||
xz-utils \
|
||||
zip \
|
||||
libglu1-mesa \
|
||||
cmake \
|
||||
ninja-build \
|
||||
pkg-config \
|
||||
libgtk-3-dev \
|
||||
liblzma-dev \
|
||||
libstdc++-12-dev \
|
||||
mingw-w64 \
|
||||
gcc-mingw-w64 \
|
||||
g++-mingw-w64 \
|
||||
wine \
|
||||
wine64 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 下载并安装Flutter
|
||||
RUN cd /tmp && curl -O https://mirrors-i.tuna.tsinghua.edu.cn/flutter/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz \
|
||||
&& tar xf flutter_linux_${FLUTTER_VERSION}-stable.tar.xz \
|
||||
&& rm -rf /flutter \
|
||||
&& mv flutter /flutter \
|
||||
&& rm flutter_linux_${FLUTTER_VERSION}-stable.tar.xz
|
||||
|
||||
# 预下载Flutter依赖
|
||||
RUN flutter precache
|
||||
|
||||
# 修复Git权限问题
|
||||
RUN git config --global --add safe.directory /flutter
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
|
||||
# 复制项目文件
|
||||
COPY . .
|
||||
|
||||
# 获取依赖
|
||||
RUN flutter pub get
|
||||
|
||||
# 尝试构建Windows版本(使用交叉编译)
|
||||
CMD ["flutter", "build", "windows", "--release"]
|
||||
@ -1,18 +0,0 @@
|
||||
name: BearVPN
|
||||
app_name: BearVPN
|
||||
version: 1.0.0
|
||||
build_number: 1
|
||||
targets:
|
||||
macos:
|
||||
dmg:
|
||||
enable: true
|
||||
# 不签名
|
||||
sign: false
|
||||
pkg:
|
||||
enable: true
|
||||
# 不签名
|
||||
sign: false
|
||||
windows:
|
||||
exe:
|
||||
enable: true
|
||||
icon: assets/images/tray_icon.ico
|
||||
@ -1,182 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# MySQL 5.7 备份服务
|
||||
mysql-backup:
|
||||
image: percona/percona-xtrabackup:2.4 # 使用 2.4 版本支持 MySQL 5.7
|
||||
container_name: mysql-backup
|
||||
restart: unless-stopped
|
||||
|
||||
# 环境变量配置 - 请修改以下配置
|
||||
environment:
|
||||
# 🔗 远程 MySQL 5.7 服务器配置
|
||||
MYSQL_HOST: "rm-0jog99u32x2n4935j9o.mysql.ap-southeast-7.rds.aliyuncs.com" # 远程 MySQL 服务器地址
|
||||
MYSQL_PORT: "13306" # MySQL 端口
|
||||
MYSQL_USER: "sysadmin" # 备份用户账号
|
||||
MYSQL_PASSWORD: "vxxa#RbOQajEbjaxyErgPU_p$Boit8a9" # 备份用户密码
|
||||
MYSQL_VERSION: "5.7" # MySQL 版本
|
||||
|
||||
# 📁 备份配置
|
||||
BACKUP_DIR: "/backup" # 容器内备份目录
|
||||
BACKUP_RETENTION_DAYS: "7" # 备份保留天数
|
||||
BACKUP_SCHEDULE: "0 2 * * *" # 备份时间 (每天凌晨2点)
|
||||
|
||||
# 🔧 备份选项
|
||||
BACKUP_TYPE: "full" # 备份类型: full(全量) / incremental(增量)
|
||||
COMPRESS_BACKUP: "true" # 是否压缩备份
|
||||
PARALLEL_THREADS: "2" # 并行线程数 (MySQL 5.7 建议使用较少线程)
|
||||
|
||||
# 挂载卷配置
|
||||
volumes:
|
||||
- ./backup:/backup # 本地备份目录映射
|
||||
- ./scripts:/scripts # 备份脚本目录
|
||||
- ./logs:/logs # 日志目录
|
||||
- /etc/localtime:/etc/localtime:ro # 时区同步
|
||||
|
||||
# 网络配置
|
||||
networks:
|
||||
- backup-network
|
||||
|
||||
# 启动命令 - 执行备份脚本
|
||||
command: >
|
||||
bash -c "
|
||||
echo 'MySQL 5.7 备份服务启动中...' &&
|
||||
echo '远程服务器: $${MYSQL_HOST}:$${MYSQL_PORT}' &&
|
||||
echo 'MySQL 版本: $${MYSQL_VERSION}' &&
|
||||
echo '备份用户: $${MYSQL_USER}' &&
|
||||
echo '备份目录: $${BACKUP_DIR}' &&
|
||||
echo '备份计划: $${BACKUP_SCHEDULE}' &&
|
||||
|
||||
# 创建必要目录
|
||||
mkdir -p $${BACKUP_DIR} $${BACKUP_DIR}/full $${BACKUP_DIR}/incremental /logs &&
|
||||
|
||||
# 安装 cron 和必要工具
|
||||
apt-get update && apt-get install -y cron gzip pv &&
|
||||
|
||||
# 创建备份脚本
|
||||
cat > /scripts/backup.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
TIMESTAMP=$$(date +%Y%m%d_%H%M%S)
|
||||
BACKUP_PATH=$${BACKUP_DIR}/$${BACKUP_TYPE}/$${TIMESTAMP}
|
||||
|
||||
echo \"[$$(date)] 开始 MySQL 5.7 备份到: $${BACKUP_PATH}\" >> /logs/backup.log
|
||||
|
||||
# 创建备份目录
|
||||
mkdir -p $${BACKUP_PATH}
|
||||
|
||||
# 测试连接
|
||||
echo \"[$$(date)] 测试 MySQL 连接...\" >> /logs/backup.log
|
||||
mysql -h$${MYSQL_HOST} -P$${MYSQL_PORT} -u$${MYSQL_USER} -p$${MYSQL_PASSWORD} -e \"SELECT 1;\" 2>> /logs/backup.log
|
||||
|
||||
if [ $$? -ne 0 ]; then
|
||||
echo \"[$$(date)] 错误: 无法连接到 MySQL 服务器\" >> /logs/backup.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 执行备份
|
||||
if [ \"$${BACKUP_TYPE}\" = \"full\" ]; then
|
||||
echo \"[$$(date)] 执行全量备份\" >> /logs/backup.log
|
||||
innobackupex \\
|
||||
--host=$${MYSQL_HOST} \\
|
||||
--port=$${MYSQL_PORT} \\
|
||||
--user=$${MYSQL_USER} \\
|
||||
--password=$${MYSQL_PASSWORD} \\
|
||||
--parallel=$${PARALLEL_THREADS} \\
|
||||
--compress \\
|
||||
--stream=tar \\
|
||||
$${BACKUP_PATH} 2>> /logs/backup.log | gzip > $${BACKUP_PATH}/backup.tar.gz
|
||||
else
|
||||
echo \"[$$(date)] 执行增量备份\" >> /logs/backup.log
|
||||
# 获取最新的全量备份作为基础
|
||||
LATEST_FULL=$$(ls -t $${BACKUP_DIR}/full/ | head -1)
|
||||
if [ -z \"$${LATEST_FULL}\" ]; then
|
||||
echo \"[$$(date)] 错误: 没有找到全量备份,无法执行增量备份\" >> /logs/backup.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
innobackupex \\
|
||||
--host=$${MYSQL_HOST} \\
|
||||
--port=$${MYSQL_PORT} \\
|
||||
--user=$${MYSQL_USER} \\
|
||||
--password=$${MYSQL_PASSWORD} \\
|
||||
--parallel=$${PARALLEL_THREADS} \\
|
||||
--incremental \\
|
||||
--incremental-basedir=$${BACKUP_DIR}/full/$${LATEST_FULL} \\
|
||||
--compress \\
|
||||
--stream=tar \\
|
||||
$${BACKUP_PATH} 2>> /logs/backup.log | gzip > $${BACKUP_PATH}/backup.tar.gz
|
||||
fi
|
||||
|
||||
# 验证备份文件
|
||||
if [ -f \"$${BACKUP_PATH}/backup.tar.gz\" ] && [ -s \"$${BACKUP_PATH}/backup.tar.gz\" ]; then
|
||||
echo \"[$$(date)] 备份成功: $${BACKUP_PATH}/backup.tar.gz\" >> /logs/backup.log
|
||||
echo \"[$$(date)] 备份文件大小: $$(du -h $${BACKUP_PATH}/backup.tar.gz | cut -f1)\" >> /logs/backup.log
|
||||
else
|
||||
echo \"[$$(date)] 错误: 备份文件创建失败或为空\" >> /logs/backup.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 清理旧备份
|
||||
echo \"[$$(date)] 清理超过 $${BACKUP_RETENTION_DAYS} 天的备份\" >> /logs/backup.log
|
||||
find $${BACKUP_DIR} -type d -mtime +$${BACKUP_RETENTION_DAYS} -exec rm -rf {} + 2>/dev/null || true
|
||||
|
||||
echo \"[$$(date)] 备份完成: $${BACKUP_PATH}\" >> /logs/backup.log
|
||||
EOF
|
||||
|
||||
# 设置脚本执行权限
|
||||
chmod +x /scripts/backup.sh &&
|
||||
|
||||
# 设置 cron 任务
|
||||
echo \"$${BACKUP_SCHEDULE} /scripts/backup.sh\" > /etc/cron.d/mysql-backup &&
|
||||
chmod 0644 /etc/cron.d/mysql-backup &&
|
||||
|
||||
# 启动 cron 服务
|
||||
service cron start &&
|
||||
|
||||
# 立即执行一次备份
|
||||
echo '执行初始备份...' &&
|
||||
/scripts/backup.sh &&
|
||||
|
||||
# 保持容器运行
|
||||
echo 'MySQL 5.7 备份服务已启动,等待定时任务...' &&
|
||||
tail -f /logs/backup.log
|
||||
"
|
||||
|
||||
# 资源限制
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 1G
|
||||
cpus: '1.0'
|
||||
reservations:
|
||||
memory: 256M
|
||||
cpus: '0.25'
|
||||
|
||||
# 备份监控服务 (可选)
|
||||
backup-monitor:
|
||||
image: nginx:alpine
|
||||
container_name: backup-monitor
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:80" # 监控界面端口
|
||||
volumes:
|
||||
- ./backup:/usr/share/nginx/html/backup:ro
|
||||
- ./monitor:/usr/share/nginx/html:ro
|
||||
networks:
|
||||
- backup-network
|
||||
depends_on:
|
||||
- mysql-backup
|
||||
|
||||
# 网络配置
|
||||
networks:
|
||||
backup-network:
|
||||
driver: bridge
|
||||
|
||||
# 卷配置
|
||||
volumes:
|
||||
backup-data:
|
||||
driver: local
|
||||
backup-logs:
|
||||
driver: local
|
||||
Loading…
x
Reference in New Issue
Block a user