0. 资料

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