使用 Docker 安装 宝塔国际版aaPanel
0. 资料
- 制作基于 Debian 的宝塔Docker镜像 https://www.xiwangly.top/制作基于debian的宝塔docker镜像.html
- aapanel-updater https://github.com/antonio24073/aapanel-updater
- docker中安装宝塔面板 https://www.cnblogs.com/phpper/p/10844757.html
- Docker運行寶塔面板 aapanel http://www.eca.party/2022/07/dockeraapanel.html
- 宝塔lnmp环境开机运行 https://zoand.com/p/6
- 基于Docker安装宝塔面板 https://blog.soarli.top/archives/668.html
- xiwangly/baota https://hub.docker.com/r/xiwangly/baota
- 宝塔面板定制docker镜像发布-集成LN/AMP支持ARM-7.9.4版本 https://www.bt.cn/bbs/thread-79499-1-1.html
1. 目前遇到的坑
1.1 官方镜像太旧
无论是 btpanel 还是 aapanel 官方镜像已经大半年没更新,只能跑 Linux 容器后自行安装最新版,或者自己构建镜像。
1.2 Linux 容器重启后无法自动启动面板及其它软件
解决方法,创建启动脚本 ( start.sh ),将有需要的自启软件启动方法加入到脚本中,然后将这个脚本放到 entrypoint 启动。
#!/bin/bash
# start.sh
# 软件启动
/etc/init.d/nginx start
/etc/init.d/mysqld start
/etc/init.d/php-fpm-74 start
/etc/init.d/pure-ftpd start
/etc/init.d/bt restart
# 解决计划任务不自动执行的问题
# debian 是 cron,其它系统可能是 crond
pkill cron
/sbin/cron
# 保持容器运行
tail -f /dev/null
1.3 Arm 兼容性问题
- debian10 可以装 php5.6 但是不能装 luajit 导致装了防火墙会让 nginx 趴窝
- debian11 可以装 luajit 让防火墙不会影响 nginx 正常工作但是不能装 php5.6
1.4 MariaDB 兼容性问题
MariaDB10.5 以上版本新引进的存储引擎 Aria 容易出错,建议安装 MariaDB10.5及以下,或者安装MySql 8 。
1.5 宿主机重启容易造成 Mysql/MariaDB 数据库无法启动
2. 安装
启动 Debian 容器
version: '3'
services:
aapanel:
image: debian
container_name: aapanel-debian
environment:
- TZ=Asia/Shanghai
restart: always
privileged: true
# stdin_open: true
# tty: true
entrypoint: /www/start.sh
# command: tail -f /dev/null
volumes:
- www:/www
volumes:
www:
name: aapanel-www
networks:
default:
name: app
external: true
安装面板
# 更新软件包
apt-get update && apt-get install sudo wget curl procps dialog iproute2 apt-utils iputils-ping
# 执行安装 aapanel
wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh aapanel