使用 Docker 安装

Docker容器将应用程序与主机系统隔离,并解决“它在我的机器上工作”的头痛问题。使用这种方法,使用Docker的每个人都运行的环境几乎与其他环境相同。这是确保每个人都拥有相同环境的好方法,从而减少出现问题的可能性。

Docker还允许您在同一台机器上以不同的配置运行多个容器。要了解有关容器的更多信息,我们强烈建议您先阅读Docker的解释。

先决条件

在进一步进行之前,请确保您安装了Docker引擎。要安装Docker引擎,请访问Docker的安装页面,并按照平台的说明进行操作。

说明

我们的官方Docker图像可以单独使用,也可以作为构图的一部分使用。选择使用哪个取决于您的需求和用例。

一般来说,如果您想运行一个简单的FOSSBilling容器,该容器将连接到外部数据库,那么独立安装可能是合适的。但是,如果您正在寻找一个现成的环境,使用Docker Compose可能更合适。

这些说明使用最新图像,这是FOSSBilling的最新稳定版本。这可以更改为预览版本的预览,或根据需要更改为特定的版本号。

独立

这是一个简单地运行带有名为fossbilling的卷的最新FOSSBilling映像的示例,其中更改将持续存在:

docker run -d -p 80:80 -v=fossbilling:/var/www/html --restart=always fossbilling/fossbilling:latest

容器启动后,您可以通过在网络浏览器中访问服务器IP/主机名来访问FOSSBilling Web安装程序。使用此方法,您将需要一个外部数据库,其详细信息应在安装程序中使用。

Docker Compose

这是一个docker-compose.yml的示例,它使用我们的图像和MySQL图像(根据您的要求进行调整):

version: "3.9"services:  fossbilling:    image: fossbilling/fossbilling:latest    restart: always    ports:      - 80:80    volumes:      - fossbilling:/var/www/html  mysql:    image: mysql:8.2    restart: always    environment:      MYSQL_DATABASE: fossbilling      MYSQL_USER: fossbilling      MYSQL_PASSWORD: fossbilling      MYSQL_RANDOM_ROOT_PASSWORD: '1'    volumes:      - mysql:/var/lib/mysqlvolumes:  fossbilling:  mysql:

要使用上述示例docker-compose.yml,请在同一目录中运行docker compose up -dwhile来启动容器。第一次启动可能需要一段时间,因为Docker将下载所需的图像。容器启动后,可以使用FOSSBilling Web界面完成安装。

如果该示例已在本地机器上使用,则可以在http://localhost上访问FOSSBilling Web安装程序,否则可以通过在Web浏览器中访问您的服务器IP/主机名来访问它。假设数据库详细信息没有更改,则为:

  • Hostname: mysql
  • Database: fossbilling
  • Username: fossbilling
  • Password: fossbilling

安装后

如果cron作业未配置,则FOSSBilling将无法正常运行。

无论使用哪种安装方法,在完成安装后,您仍然需要配置一个cron作业,以确保计划任务运行。这可以使用主机系统上的以下命令来实现(酌情将<容器名称/id>替换为容器名称/ID):

(crontab -l; echo "*/5 * * * * docker exec <container name/id> su www-data -s /usr/local/bin/php /var/www/html/cron.php")|awk '!x[$0]++'|crontab -

如果您不知道上述的容器名称或ID,您可以获得带有docker ps的容器列表。