You've successfully subscribed to 完美的胖达
Great! Next, complete checkout for full access to 完美的胖达
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Ubuntu上使用Docker安装glpi

Ubuntu上使用Docker安装glpi

. 约 3 分钟读完

最近需要在Ubuntu上使用Docker安装glpi,记录一下操作。

首先更新服务器:

sudo apt update
sudo apt upgrade

然后安装docker功能,设置docker开机自启动,以及将当前用户添加进docker组以免每次都要sudo:

sudo apt install docker.io docker-compose -y
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

重要提示: 执行此命令后,您需要退出服务器并重新登录(或newgrp docker),以使用户组更改生效。

基于众所周知的原因,为docker添加国内镜像源:

sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com"
  ]
}
sudo systemctl daemon-reload
sudo systemctl restart docker

为 GLPI 创建一个专用目录并进入:

mkdir glpi-docker
cd glpi-docker

新建.env环境文件:

nano .env
GLPI_VERSION=latest
MARIADB_VERSION=latest
TZ=Asia/Shanghai
MYSQL_ROOT_PASSWORD=your-strong-root-password
MYSQL_DATABASE=glpi_db
MYSQL_USER=glpi_user
MYSQL_PASSWORD=your-strong-glpi-db-password

新建yml文件:

nano docker-compose.yml
version: '3.8'

services:
  # MariaDB 数据库服务
  glpi-db:
    image: mariadb:${MARIADB_VERSION:-latest}
    container_name: glpi-db
    restart: always
    # 从 .env 文件加载 MYSQL_... 变量
    env_file:
      - .env
    environment:
      # 为数据库设置时区
      TZ: ${TZ}
    volumes:
      - glpi-db-data:/var/lib/mysql
    # 增加 60 秒的优雅关机宽限期
    stop_grace_period: 60s
    networks:
      - glpi-net

  # GLPI 应用服务
  glpi-app:
    image: ghcr.io/glpi-project/glpi:${GLPI_VERSION:-latest}
    container_name: glpi-app
    restart: always
    # 也加载 .env 文件 (主要为了 TZ)
    env_file:
      - .env
    ports:
      # 使用 80 端口
      - "80:80"
    environment:
      # (这些是 GLPI 应用启动时真正读取的官方变量)
      
      GLPI_DB_HOST: glpi-db
      GLPI_DB_PORT: 3306
      
      # (这里是关键的“映射”:将 .env 中的 MYSQL_... 值赋给 GLPI_... 变量)
      GLPI_DB_USER: ${MYSQL_USER}
      GLPI_DB_PASSWORD: ${MYSQL_PASSWORD}
      GLPI_DB_NAME: ${MYSQL_DATABASE}

      # 为 GLPI 应用设置时区
      TZ: ${TZ}
    volumes:
      - glpi-files-data:/var/www/html/files
      - glpi-config-data:/var/www/html/config
      - glpi-plugins-data:/var/www/html/plugins
    networks:
      - glpi-net
    depends_on:
      - glpi-db # 确保数据库先于应用启动

# Docker 命名卷 (最佳实践)
volumes:
  glpi-db-data:
  glpi-files-data:
  glpi-config-data:
  glpi-plugins-data:

# Docker 网络
networks:
  glpi-net:

开始运行docker:

docker compose up -d

运行后使用如下命令查看docker状态:

docker-compose ps
  Name                Command               State                Ports              
------------------------------------------------------------------------------------
glpi-app   /opt/glpi/entrypoint.sh /o ...   Up      0.0.0.0:80->80/tcp,:::80->80/tcp
glpi-db    docker-entrypoint.sh mariadbd    Up      3306/tcp      

state是Up基本上就OK了,继续查看log状态:

docker-compose logs glpi-app

出现如下内容说明安装没问题,可以输入服务器地址开始使用了:

glpi-app    | ================================================================
glpi-app    | Welcome to
glpi-app    | 
glpi-app    |  ██████╗ ██╗     ██████╗ ██╗
glpi-app    | ██╔════╝ ██║     ██╔══██╗██║
glpi-app    | ██║  ███╗██║     ██████╔╝██║
glpi-app    | ██║   ██║██║     ██╔═══╝ ██║
glpi-app    | ╚██████╔╝███████╗██║     ██║
glpi-app    |  ╚═════╝ ╚══════╝╚═╝     ╚═╝
glpi-app    | 
glpi-app    | https://glpi-project.org
glpi-app    | 
glpi-app    | ================================================================
glpi-app    | GLPI installation completed successfully!
glpi-app    | 
glpi-app    | Please access GLPI via your web browser to complete the setup.
glpi-app    | You can use the following credentials:
glpi-app    | 
glpi-app    | - Username: glpi
glpi-app    | - Password: glpi
glpi-app    | ================================================================
glpi-app    | 
glpi-app    | [Wed Nov 05 15:17:35.106636 2025] [mpm_prefork:notice] [pid 675:tid 675] AH00163: Apache/2.4.65 (Debian) configured -- resuming normal operations
glpi-app    | [Wed Nov 05 15:17:35.106696 2025] [core:notice] [pid 675:tid 675] AH00094: Command line: 'apache2 -D FOREGROUND'

注意yml里面设置了60秒grace关机超时,所以关机可以直接shutdown基本没问题,重启时docker自动重启,至此安装完成。

本篇已被阅读