Docker 中安装 宝塔面板

引言 相关仓库:https://github.com/yiyungent/btpanel-docker Docker 安装宝塔 Dockerfile
Dockerfile
1
2
3
4
5
6
7
8
FROM centos:7.8 AS base

RUN yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

EXPOSE 21 22 80 443 888 3306 8888

VOLUME ["/www/wwwroot"]
VOLUME ["/www/backup"]
构建镜像
1
docker build -t yiyungent/btpanel .
docker-compose.yml
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3.4'

services:
btpanel.service:
image: yiyungent/btpanel
container_name: btpanel-container
restart: always
privileged: true # 设置容器的权限为root
environment:
- TZ=Asia/Shanghai
volumes:
- /www/wwwroot:/www/wwwroot
- /www/backup:/www/backup
network: host # 注意: host 网络只有在 linux 下有效
启动
1
docker-compose up -d
补充

进入容器内部

进入容器内部
1
docker exec -it btpanel-container bash

阿里云轻量应用服务器更新Python

在阿里云轻量应用服务器 CentOS 7.6 中更新 Python,比较阿里云ECS (CentOS 7.8), 不知道为何不需要取消对ssl相关的注释,取消注释后反而会报错 即,不需要做下方此步:
1
vi /usr/local/Python-3.8.0/Modules/Setup
补充,不知道为何在轻量应用服务器(CentOS 7.6)中编译安装Python后,不含pip 额外安装pip 参考: 解决Python没有pip的问题_见君不喜的博客-CSDN博客

GitHub Actions

.github-build.yml
.github\workflows\docker-build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
name: Docker Image CI/CD
on:
push:
branches: [ main ]
jobs:
# 构建并上传 Docker镜像
build:
runs-on: ubuntu-latest # 依赖的环境
steps:
- uses: actions/checkout@v2
- name: Build Image
run: |
docker build -t yiyungent/btpanel .
- name: Login to Registry
run: docker login --username={{hbeSeoContent}}#123;{ secrets.DOCKER_USERNAME }} --password {{hbeSeoContent}}#123;{ secrets.DOCKER_PASSWORD }}
- name: Push Image
run: |
docker push yiyungent/btpanel

解除宝塔面板强制绑定手机号

参考: 宝塔面板屏蔽、去除、解决强制绑定手机账号-缙哥哥 最新宝塔面板强制取消绑定手机号&平台账号方法 | 柒夏云屋

方法1

7.6.0版本之后已经失效 屏蔽宝塔强制绑定手机
1
sed -i "s|bind_user == 'True'|bind_user == 'XXXX'|" /www/server/panel/BTPanel/static/js/index.js
若 需要恢复 绑定手机号
1
sed -i "s|if (bind_user == 'REMOVED') {|if (bind_user == 'True') {|g" /www/server/panel/BTPanel/static/js/index.js
删除宝塔强制绑定手机js文件
1
rm -f /www/server/panel/data/bind.pl
运行以上代码可以解除宝塔面板的强制绑定手机,运行完毕以后,请清除浏览器缓存并刷新宝塔面板!实在不会清理缓存的就用浏览器无痕模式!

方法2

1
echo "{\"uid\":1000,\"username\":\"admin\",\"serverid\":1}" > /www/server/panel/data/userInfo.json

方法3

使用 宝塔国际版: https://www.aapanel.com

方法4

最新7.8版本
1
vim /www/server/panel/class/public.py
找到
1
def is_bind()
直接改成返回True就行了
1
sed -i -r "s/not not get_user_info\(\)/True/" /www/server/panel/class/public.py && bt 1
参考 感谢帮助! Linux下docker中安装宝塔面板教程 - ★小毅★ - 博客园 宝塔面板一键迁移API版本使用教程 – 快速搬家的好帮手 - 大鸟博客 pch18-docker/baota at clear - 详细参考