diff --git a/Dockerfile b/Dockerfile index 9fd7c28..7d42664 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,7 @@ RUN dos2unix /bt.sh && dos2unix /init_mysql.sh # 下载并安装宝塔面板及 nginx RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ && echo y | bash install_panel.sh -P 8888 --ssl-disable \ + && btpip config set global.index-url https://mirrors.tencent.com/pypi/simple \ && mkdir /lnmp \ && curl -o /lnmp/nginx.sh https://download.bt.cn/install/3/nginx.sh \ && bash /lnmp/nginx.sh install 1.27 \ @@ -28,6 +29,7 @@ RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ && echo '["memuA", "memuAsite", "memuAwp", "memuAdatabase", "memuAcontrol", "memuAfiles", "memuAlogs", "memuAxterm", "memuAcrontab", "memuAsoft", "memuAconfig", "dologin", "memu_btwaf", "memuAssl"]' > /www/server/panel/config/show_menu.json \ && apt clean \ && rm -rf /var/lib/apt/lists/* \ + && rm -rf /www/reserve_space.pl \ && chmod +x /bt.sh \ && chmod +x /init_mysql.sh @@ -38,6 +40,11 @@ RUN echo btpanel | bt 6 \ && echo "/btpanel" > /www/server/panel/data/admin_path.pl \ && echo "root:btpaneldocker" | chpasswd +# 打包宝塔面板,并清除www +RUN bt 2 \ + && tar -zcf /www.tar.gz /www \ + && rm -rf /www + ENTRYPOINT ["/bin/sh","-c","/bt.sh"] # 暴漏特定端口 diff --git a/arm64/Dockerfile b/arm64/Dockerfile index aac767c..aa54ebe 100644 --- a/arm64/Dockerfile +++ b/arm64/Dockerfile @@ -19,6 +19,7 @@ RUN dos2unix /bt.sh && dos2unix /init_mysql.sh # 下载并安装宝塔面板及 lnmp 环境 RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ && echo y | bash install_panel.sh -P 8888 --ssl-disable \ + && btpip config set global.index-url https://mirrors.tencent.com/pypi/simple \ && mkdir /lnmp \ && curl -o /lnmp/nginx.sh https://download.bt.cn/install/3/nginx.sh \ && bash /lnmp/nginx.sh install openresty \ @@ -28,6 +29,7 @@ RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ && echo '["memuA", "memuAsite", "memuAwp", "memuAdatabase", "memuAcontrol", "memuAfiles", "memuAlogs", "memuAxterm", "memuAcrontab", "memuAsoft", "memuAconfig", "dologin", "memu_btwaf", "memuAssl"]' > /www/server/panel/config/show_menu.json \ && apt clean \ && rm -rf /var/lib/apt/lists/* \ + && rm -rf /www/reserve_space.pl \ && chmod +x /bt.sh \ && chmod +x /init_mysql.sh @@ -38,6 +40,10 @@ RUN echo btpanel | bt 6 \ && echo "/btpanel" > /www/server/panel/data/admin_path.pl \ && echo "root:btpaneldocker" | chpasswd +# 打包宝塔面板,并清除www +RUN tar -zcf /www.tar.gz /www \ + && rm -rf /www + ENTRYPOINT ["/bin/sh","-c","/bt.sh"] # 暴漏所有端口 diff --git a/arm64/bt.sh b/arm64/bt.sh index 288e69e..c016173 100644 --- a/arm64/bt.sh +++ b/arm64/bt.sh @@ -8,6 +8,24 @@ Setup_Path=$Root_Path/server/mysql Data_Path=$Root_Path/server/data O_pl=$(cat /www/server/panel/data/o.pl) +backup_database() { + if [ -d "${Data_Path}" ] && [ ! -z "$(ls -A ${Data_Path})" ]; then + if [ ! -d "${Setup_Path}" ] || [ -z "$(ls -A ${Setup_Path})" ]; then + timestamp=$(date +"%Y%m%d%H%M%S") + tar czf /www/server/data_backup_$timestamp.tar.gz -C ${Data_Path} . + fi + fi +} + +restore_panel_data() { + if [ -f /www.tar.gz ]; then + if [ ! -d /www ] || [ -z "$(ls -A /www)" ] || [ ! -d /www/server/panel ] || [ -z "$(ls -A /www/server/panel)" ] || [ ! -d /www/server/panel/pyenv ] || [ -z "$(ls -A /www/server/panel/pyenv)" ]; then + tar xzf /www.tar.gz -C / --skip-old-files + rm -rf /www.tar.gz + fi + fi +} + soft_start(){ # 扫描并启动所有服务 init_scripts=$(ls ${init_path}) @@ -68,6 +86,9 @@ start_mysql(){ fi } + +restore_panel_data > /dev/null +backup_database > /dev/null is_empty_Data > /dev/null init_mysql > /dev/null start_mysql > /dev/null diff --git a/bt.sh b/bt.sh index 288e69e..c016173 100644 --- a/bt.sh +++ b/bt.sh @@ -8,6 +8,24 @@ Setup_Path=$Root_Path/server/mysql Data_Path=$Root_Path/server/data O_pl=$(cat /www/server/panel/data/o.pl) +backup_database() { + if [ -d "${Data_Path}" ] && [ ! -z "$(ls -A ${Data_Path})" ]; then + if [ ! -d "${Setup_Path}" ] || [ -z "$(ls -A ${Setup_Path})" ]; then + timestamp=$(date +"%Y%m%d%H%M%S") + tar czf /www/server/data_backup_$timestamp.tar.gz -C ${Data_Path} . + fi + fi +} + +restore_panel_data() { + if [ -f /www.tar.gz ]; then + if [ ! -d /www ] || [ -z "$(ls -A /www)" ] || [ ! -d /www/server/panel ] || [ -z "$(ls -A /www/server/panel)" ] || [ ! -d /www/server/panel/pyenv ] || [ -z "$(ls -A /www/server/panel/pyenv)" ]; then + tar xzf /www.tar.gz -C / --skip-old-files + rm -rf /www.tar.gz + fi + fi +} + soft_start(){ # 扫描并启动所有服务 init_scripts=$(ls ${init_path}) @@ -68,6 +86,9 @@ start_mysql(){ fi } + +restore_panel_data > /dev/null +backup_database > /dev/null is_empty_Data > /dev/null init_mysql > /dev/null start_mysql > /dev/null