合并来自 nas-dev 的合并请求 #1

Update Dockerfiles to use Tencent Cloud PyPI mirror for faster pip installations
PR-URL: #1
This commit is contained in:
xiao 2025-01-07 15:15:57 +08:00 committed by cnb
commit 14fe50fa2d
4 changed files with 55 additions and 0 deletions

View File

@ -19,6 +19,7 @@ RUN dos2unix /bt.sh && dos2unix /init_mysql.sh
# 下载并安装宝塔面板及 nginx # 下载并安装宝塔面板及 nginx
RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ RUN curl -sSO https://download.bt.cn/install/install_panel.sh \
&& echo y | bash install_panel.sh -P 8888 --ssl-disable \ && echo y | bash install_panel.sh -P 8888 --ssl-disable \
&& btpip config set global.index-url https://mirrors.tencent.com/pypi/simple \
&& mkdir /lnmp \ && mkdir /lnmp \
&& curl -o /lnmp/nginx.sh https://download.bt.cn/install/3/nginx.sh \ && curl -o /lnmp/nginx.sh https://download.bt.cn/install/3/nginx.sh \
&& bash /lnmp/nginx.sh install 1.27 \ && 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 \ && 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 \ && apt clean \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /www/reserve_space.pl \
&& chmod +x /bt.sh \ && chmod +x /bt.sh \
&& chmod +x /init_mysql.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 "/btpanel" > /www/server/panel/data/admin_path.pl \
&& echo "root:btpaneldocker" | chpasswd && echo "root:btpaneldocker" | chpasswd
# 打包宝塔面板并清除www
RUN bt 2 \
&& tar -zcf /www.tar.gz /www \
&& rm -rf /www
ENTRYPOINT ["/bin/sh","-c","/bt.sh"] ENTRYPOINT ["/bin/sh","-c","/bt.sh"]
# 暴漏特定端口 # 暴漏特定端口

View File

@ -19,6 +19,7 @@ RUN dos2unix /bt.sh && dos2unix /init_mysql.sh
# 下载并安装宝塔面板及 lnmp 环境 # 下载并安装宝塔面板及 lnmp 环境
RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ RUN curl -sSO https://download.bt.cn/install/install_panel.sh \
&& echo y | bash install_panel.sh -P 8888 --ssl-disable \ && echo y | bash install_panel.sh -P 8888 --ssl-disable \
&& btpip config set global.index-url https://mirrors.tencent.com/pypi/simple \
&& mkdir /lnmp \ && mkdir /lnmp \
&& curl -o /lnmp/nginx.sh https://download.bt.cn/install/3/nginx.sh \ && curl -o /lnmp/nginx.sh https://download.bt.cn/install/3/nginx.sh \
&& bash /lnmp/nginx.sh install openresty \ && 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 \ && 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 \ && apt clean \
&& rm -rf /var/lib/apt/lists/* \ && rm -rf /var/lib/apt/lists/* \
&& rm -rf /www/reserve_space.pl \
&& chmod +x /bt.sh \ && chmod +x /bt.sh \
&& chmod +x /init_mysql.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 "/btpanel" > /www/server/panel/data/admin_path.pl \
&& echo "root:btpaneldocker" | chpasswd && echo "root:btpaneldocker" | chpasswd
# 打包宝塔面板并清除www
RUN tar -zcf /www.tar.gz /www \
&& rm -rf /www
ENTRYPOINT ["/bin/sh","-c","/bt.sh"] ENTRYPOINT ["/bin/sh","-c","/bt.sh"]
# 暴漏所有端口 # 暴漏所有端口

View File

@ -8,6 +8,24 @@ Setup_Path=$Root_Path/server/mysql
Data_Path=$Root_Path/server/data Data_Path=$Root_Path/server/data
O_pl=$(cat /www/server/panel/data/o.pl) 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(){ soft_start(){
# 扫描并启动所有服务 # 扫描并启动所有服务
init_scripts=$(ls ${init_path}) init_scripts=$(ls ${init_path})
@ -68,6 +86,9 @@ start_mysql(){
fi fi
} }
restore_panel_data > /dev/null
backup_database > /dev/null
is_empty_Data > /dev/null is_empty_Data > /dev/null
init_mysql > /dev/null init_mysql > /dev/null
start_mysql > /dev/null start_mysql > /dev/null

21
bt.sh
View File

@ -8,6 +8,24 @@ Setup_Path=$Root_Path/server/mysql
Data_Path=$Root_Path/server/data Data_Path=$Root_Path/server/data
O_pl=$(cat /www/server/panel/data/o.pl) 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(){ soft_start(){
# 扫描并启动所有服务 # 扫描并启动所有服务
init_scripts=$(ls ${init_path}) init_scripts=$(ls ${init_path})
@ -68,6 +86,9 @@ start_mysql(){
fi fi
} }
restore_panel_data > /dev/null
backup_database > /dev/null
is_empty_Data > /dev/null is_empty_Data > /dev/null
init_mysql > /dev/null init_mysql > /dev/null
start_mysql > /dev/null start_mysql > /dev/null