diff --git a/Dockerfile b/Dockerfile index 7eb1f9d..771910e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,9 @@ FROM debian:bookworm -# 切换 Debian 镜像源为腾讯云源 -RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g' /etc/apt/sources.list.d/debian.sources - -# 更新包列表并升级系统中已经安装的软件包 -RUN apt update && apt upgrade -y - -# 安装前置依赖 -RUN apt install -y \ +# 切换 Debian 镜像源为腾讯云源,更新包列表并安装依赖 +RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g' /etc/apt/sources.list.d/debian.sources \ + && apt update && apt upgrade -y \ + && apt install -y \ locales \ wget iproute2 openssh-server libgd-dev cmake make gcc g++ autoconf \ libsodium-dev libonig-dev libssh2-1-dev libc-ares-dev libaio-dev sudo curl dos2unix \ @@ -15,80 +11,46 @@ RUN apt install -y \ diffutils unzip tar libbz2-dev libncurses5 libncurses5-dev libtool libevent-dev libssl-dev libsasl2-dev \ libltdl-dev zlib1g-dev libglib2.0-0 libglib2.0-dev libkrb5-dev libpq-dev libpq5 gettext libcap-dev \ libc-client2007e-dev psmisc patch git e2fsprogs libxslt1-dev xz-utils libgd3 libwebp-dev libvpx-dev \ - libfreetype6-dev libjpeg62-turbo libjpeg62-turbo-dev iptables libudev-dev libldap2-dev lua5.4 liblua5.4-dev + libfreetype6-dev libjpeg62-turbo libjpeg62-turbo-dev iptables libudev-dev libldap2-dev \ + && apt clean \ + && rm -rf /var/lib/apt/lists/* -# 配置区域设置 -RUN locale-gen en_US.UTF-8 \ - && export LANG=en_US.UTF-8 \ - && export LANGUAGE=en_US:en \ - && export LC_ALL=en_US.UTF-8 \ - && export LC_CTYPE=en_US.UTF-8 \ - && update-locale - -# 复制启动脚本 -COPY bt.sh /bt.sh -COPY init_mysql.sh /init_mysql.sh +# 复制脚本 +COPY ["bt.sh", "init_mysql.sh", "/"] +COPY ["phpmyadmin.sh", "/lamp/"] # 转换启动脚本 -RUN dos2unix /bt.sh -RUN dos2unix /init_mysql.sh +RUN dos2unix /bt.sh && dos2unix /init_mysql.sh -# 设置构建参数 -ARG RANDOM_NAME - -# 设置一个btd12-前缀的随机主机名 -RUN echo "btd12-${RANDOM_NAME}" > /etc/hostname - -# 下载并安装宝塔面板 +# 下载并安装宝塔面板及 lamp 环境 RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ - && echo y | bash install_panel.sh -P 8888 --ssl-disable - -# 安装 lnmp 环境 -# 创建目录 -RUN mkdir -p /lnmp - -# 安装 lnmp 环境 -# 创建目录 -RUN mkdir -p /lnmp - -# 安装 Apache 2.4 -RUN curl -o /lnmp/apache.sh https://download.bt.cn/install/4/apache.sh \ - && sh /lnmp/apache.sh install 2.4 - -# 安装 PHP 8.3 -RUN curl -o /lnmp/php.sh https://download.bt.cn/install/4/php.sh \ - && sh /lnmp/php.sh install 8.3 - -# 安装 MySQL 8.0 -RUN curl -o /lnmp/mysql.sh https://download.bt.cn/install/4/mysql.sh \ - && sh /lnmp/mysql.sh install 8.0 - -# 清理安装包 -RUN rm -rf /lnmp \ + && echo y | bash install_panel.sh -P 8888 --ssl-disable \ + && /lamp/apache.sh https://download.bt.cn/install/4/apache.sh \ + && sh /lamp/apache.sh install 2.4 \ + && curl -o /lamp/php.sh https://download.bt.cn/install/4/php.sh \ + && sh /lamp/php.sh install 8.3 \ + && curl -o /lamp/mysql.sh https://download.bt.cn/install/4/mysql.sh \ + && sh /lamp/mysql.sh install 8.0 \ + && sh /lamp/phpmyadmin.sh install 5.2 \ + && rm -rf /lamp \ && rm -rf /www/server/php/83/src \ && rm -rf /www/server/mysql/mysql-test \ && rm -rf /www/server/mysql/src.tar.gz \ && rm -rf /www/server/mysql/src \ && rm -rf /www/server/data/* \ - && rm -rf /www/server/nginx/src + && rm -rf /www/server/nginx/src \ + && echo "docker_btlamp_d12" > /www/server/panel/data/o.pl \ + && apt clean \ + && rm -rf /var/lib/apt/lists/* \ + && chmod +x /bt.sh \ + && chmod +x /init_mysql.sh + -# 配置宝塔面板安全入口和用户名及密码 +# 配置宝塔面板安全入口和用户名及密码,以及 SSH 密码 RUN echo btpanel | bt 6 \ && echo btpaneldocker | bt 5 \ - && echo "/btpanel" > /www/server/panel/data/admin_path.pl - -# 设置 root 用户密码 -RUN echo "root:btpaneldocker" | chpasswd - -# 赋予 bt.sh 可执行权限 -RUN chmod +x /bt.sh - -# 清理缓存 -RUN apt clean \ - && rm -rf /var/lib/apt/lists/* - -# 设置标识文件 -RUN echo "docker_btlamp_d12" > /www/server/panel/data/o.pl + && echo "/btpanel" > /www/server/panel/data/admin_path.pl \ + && echo "root:btpaneldocker" | chpasswd ENTRYPOINT ["/bin/sh","-c","/bt.sh"] diff --git a/phpmyadmin.sh b/phpmyadmin.sh new file mode 100644 index 0000000..49030d8 --- /dev/null +++ b/phpmyadmin.sh @@ -0,0 +1,108 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH + +public_file=/www/server/panel/install/public.sh +if [ ! -f $public_file ];then + wget -O $public_file https://download.bt.cn/install/public.sh -T 5; +fi +. $public_file + +download_Url=$NODE_URL +Root_Path=`cat /var/bt_setupPath.conf` +Setup_Path=$Root_Path/server/phpmyadmin +webserver="" + + + +Install_phpMyAdmin() +{ + if [ -d "${Root_Path}/server/apache" ];then + webserver='apache' + elif [ -d "${Root_Path}/server/nginx" ];then + webserver='nginx' + elif [ -f "/usr/local/lsws/bin/lswsctrl" ];then + webserver='openlitespeed' + fi + + if [ "${webserver}" == "" ];then + echo "No Web server installed!" + exit 0; + fi + + PHPVersion="" + for phpVer in 52 53 54 55 56 70 71 72 73 74 80 81 82 83; + do + if [ -d "/www/server/php/${phpVer}/bin" ]; then + PHPVersion=${phpVer} + fi + done + + if [ -z $PHPVersion ];then + echo "======================================" + echo "当前没有可用php,停止安装!" + echo "请先安装好php后再进行安装phpmyadmin!" + exit 1; + fi + + wget -O phpMyAdmin.zip $download_Url/src/phpMyAdmin-${1}.zip -T20 + mkdir -p $Setup_Path + + unzip -o phpMyAdmin.zip -d $Setup_Path/ > /dev/null + rm -f phpMyAdmin.zip + rm -rf $Root_Path/server/phpmyadmin/phpmyadmin* + + + phpmyadminExt=`cat /dev/urandom | head -n 32 | md5sum | head -c 16`; + mv $Setup_Path/databaseAdmin $Setup_Path/phpmyadmin_$phpmyadminExt + chmod -R 755 $Setup_Path/phpmyadmin_$phpmyadminExt + chown -R www.www $Setup_Path/phpmyadmin_$phpmyadminExt + chmod 755 /www/server/phpmyadmin + + secret=`cat /dev/urandom | head -n 32 | md5sum | head -c 32`; + \cp -a -r $Setup_Path/phpmyadmin_$phpmyadminExt/config.sample.inc.php $Setup_Path/phpmyadmin_$phpmyadminExt/config.inc.php + sed -i "s#^\$cfg\['blowfish_secret'\].*#\$cfg\['blowfish_secret'\] = '${secret}';#" $Setup_Path/phpmyadmin_$phpmyadminExt/config.inc.php + sed -i "s#^\$cfg\['blowfish_secret'\].*#\$cfg\['blowfish_secret'\] = '${secret}';#" $Setup_Path/phpmyadmin_$phpmyadminExt/libraries/config.default.php + + echo $1 > $Setup_Path/version.pl + + + + if [ "${webserver}" == "nginx" ];then + sed -i "s#$Root_Path/wwwroot/default#$Root_Path/server/phpmyadmin#" $Root_Path/server/nginx/conf/nginx.conf + rm -f $Root_Path/server/nginx/conf/enable-php.conf + \cp $Root_Path/server/nginx/conf/enable-php-$PHPVersion.conf $Root_Path/server/nginx/conf/enable-php.conf + sed -i "/pathinfo/d" $Root_Path/server/nginx/conf/enable-php.conf + if [ ! -f "/www/server/nginx/conf/enable-php.conf" ];then + touch /www/server/nginx/conf/enable-php.conf + fi + /etc/init.d/nginx reload + + PMA_PORT=$(cat $Root_Path/server/nginx/conf/nginx.conf|grep "listen "|grep -oE '[0-9]+') + else + sed -i "s#$Root_Path/wwwroot/default#$Root_Path/server/phpmyadmin#" $Root_Path/server/apache/conf/extra/httpd-vhosts.conf + sed -i "0,/php-cgi/ s/php-cgi-\w*\.sock/php-cgi-${PHPVersion}.sock/" $Root_Path/server/apache/conf/extra/httpd-vhosts.conf + /etc/init.d/httpd reload + + PMA_PORT=$(cat /www/server/apache/conf/extra/httpd-vhosts.conf |grep "Listen "|grep -oE '[0-9]+') + fi + + echo ${PMA_PORT} > /www/server/phpmyadmin/port.pl + +} + +Uninstall_phpMyAdmin() +{ + rm -rf $Root_Path/server/phpmyadmin/phpmyadmin* + rm -f $Root_Path/server/phpmyadmin/version.pl + rm -f $Root_Path/server/phpmyadmin/version_check.pl +} + +actionType=$1 +version=$2 + +if [ "$actionType" == 'install' ];then + Install_phpMyAdmin $version +elif [ "$actionType" == 'uninstall' ];then + Uninstall_phpMyAdmin +fi