Sign inSign up

jmbasolucoes/glpi

By jmbasolucoes

Updated 8 days ago

Image
1

3.0K

jmbasolucoes/glpi repository overview

GLPI 11.0.8 - PHP 8.3

Site
Linkedin
Docker

O que é GLPI?

O GLPI é uma aplicação de gestão de serviços e gerenciamento de ativos 100% web. Foi prioritariamente desenvolvida para atender às necessidades de Gestores de TI no gerenciamento de chamados de Helpdesk e transformou-se numa poderosa plataforma de gerenciamento de ativos e serviços, provendo aos gestores informações “on time” de seus recursos físicos e humanos.

Pré-requisitos

Certifique-se de que o Docker e o Docker Compose estão instalados no seu ambiente:

Imagens GLPI

Estas são as imagens Docker oficiais criadas pela JMBA Soluções. Elas são baseadas exclusivamente em Almalinux 9. Estas imagens são somente da interface web do GLPI:

jmbasolucoes/glpi:latest
jmbasolucoes/glpi:11.0.8
jmbasolucoes/glpi:10.0.26
jmbasolucoes/glpi:12-dev

Criando os diretórios / volumes (Dados persistentes)

Volumes para o GLPI
mkdir -p /data/glpi-11/glpi/documents
mkdir -p /data/glpi-11/glpi/marketplace
mkdir -p /data/glpi-11/glpi/plugins
mkdir -p /data/glpi-11/glpi/files/_pictures
mkdir -p /data/glpi-11/glpi/files/_plugins
mkdir -p /data/glpi-11/glpi/etc
mkdir -p /data/glpi-11/glpi/imagens-custom
mkdir -p /data/glpi-11/backup
Volumes para o MySQL
mkdir -p /data/glpi-11/percona/lib
Ajustando permissões do GLPI e MySQL
chown 70:70 -R /data/glpi-11/glpi
chown 1001:0 -R /data/glpi-11/percona
Criando uma Network

Vamos criar uma nova network para que os nossos containers possam se comunicar diretamente pelo nome, garantindo que o GLPI não perca a conexão com o banco de dados:

docker network create glpi

Arquivo .env

Antes de iniciar o banco de dados e o GLPI, é essencial configurar as variáveis de ambiente no arquivo .env. Este arquivo deve conter as credenciais do banco de dados e configurações do GLPI. Um exemplo de arquivo .env pode ser encontrado em:
.env.example

Aqui estão as variáveis que você deve configurar:

MYSQL_ROOT_PASSWORD=root_password
MYSQL_DATABASE=glpi
MYSQL_USER=glpi_user
MYSQL_PASSWORD=glpi_password
TZ=America/Sao_Paulo

As variáveis de ambiente MYSQL_ROOT_PASSWORD, MYSQL_DATABASE, MYSQL_USER, e MYSQL_PASSWORD devem ser ajustadas de acordo com sua configuração do banco de dados. A variável TZ define o fuso horário (ajuste conforme necessário).

Agora, com o .env configurado corretamente, podemos prosseguir com os próximos passos.

Iniciando o banco de dados

Com as variáveis definidas no arquivo .env, vamos iniciar o container do banco de dados MySQL com as credenciais configuradas:

docker run --name db-glpi-11 --network glpi \
  -e MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD \
  -e MYSQL_DATABASE=$MYSQL_DATABASE \
  -e MYSQL_USER=$MYSQL_USER \
  -e MYSQL_PASSWORD=$MYSQL_PASSWORD \
  -e TZ=$TZ \
  -v /data/glpi-11/percona/lib/:/var/lib/mysql \
  -d percona/percona-server:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

Iniciando o GLPI

Agora vamos iniciar o container do GLPI, conectando-o ao banco de dados com as variáveis definidas no .env:

docker run --name glpi-11 --network glpi -p 80:80 \
  -v /data/glpi-11/glpi/documents:/var/lib/glpi/files/data-documents \
  -v /data/glpi-11/glpi/marketplace:/var/lib/glpi/marketplace \
  -v /data/glpi-11/glpi/imagens-custom:/usr/share/glpi/pics/imagens-custom \
  -v /data/glpi-11/glpi/marketplace:/usr/share/glpi/marketplace \
  -v /data/glpi-11/glpi/plugins:/usr/share/glpi/plugins \
  -v /data/glpi-11/glpi/files/_pictures:/var/lib/glpi/files/_pictures \
  -v /data/glpi-11/glpi/files/_plugins:/var/lib/glpi/files/_plugins \
  -v /data/glpi-11/glpi/etc:/etc/glpi/ \
  -v /data/glpi-11/backup:/backup/ \
  -d jmbasolucoes/glpi:11.0.8

Docker Compose

Usando o Docker Compose, podemos configurar os serviços do GLPI, do MySQL e do Redis com as variáveis definidas no .env:

version: '3.9'
services:
  glpi_app:
    image: jmbasolucoes/glpi:11.0.8
    container_name: glpi-11
    depends_on:
      - glpidb
      - glpi_redis
    volumes:
      - /data/glpi-11/glpi/documents:/var/lib/glpi/files/data-documents
      - /data/glpi-11/glpi/marketplace:/usr/share/glpi/marketplace
      - /data/glpi-11/glpi/plugins:/usr/share/glpi/plugins
      - /data/glpi-11/glpi/files/_pictures:/var/lib/glpi/files/_pictures
      - /data/glpi-11/glpi/files/_plugins:/var/lib/glpi/files/_plugins
      - /data/glpi-11/glpi/etc:/etc/glpi
      - /data/glpi-11/glpi/imagens-custom:/usr/share/glpi/pics/imagens-custom
      - /data/glpi-11/backup:/backup
    environment:
      - GLPI_ENABLE_REDIS_SESSIONS=true
      - GLPI_CONFIGURE_REDIS_CACHE=true
      - GLPI_REDIS_HOST=glpi_redis
      - GLPI_REDIS_PORT=6379
      - GLPI_REDIS_SESSION_DB=1
      - GLPI_REDIS_CACHE_DB=0
    networks:
      - glpi
    ports:
      - 8085:80

  glpidb:
    image: percona/percona-server:8.0
    container_name: db-glpi-11
    networks:
      - glpi
    volumes:
      - /data/glpi-11/percona/lib:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - TZ=${TZ}

  glpi_redis:
    image: redis:7-alpine
    container_name: glpi-redis
    command: redis-server --save "" --appendonly no
    networks:
      - glpi

networks:
  glpi:
    driver: bridge
Comando para subir os serviços:
docker compose up -d

Instalação do GLPI

Agora que temos o container da aplicação e o container do banco de dados, podemos conectar o GLPI ao banco de dados:

Web

Acesse o GLPI no navegador com o IP do servidor:

  • http://IP_DNS ou http://IP_DNS:PORTA
Console

Se preferir configurar via console, execute o seguinte comando para instalar o banco de dados:

docker exec -it glpi-11 /bin/bash
glpi-console glpi:database:install -L pt_BR -Hdb-glpi-11 -dglpi -uglpi -p${MYSQL_PASSWORD} --no-telemetry --force -n

Redis (Sessões e Cache)

Ao subir com o Docker Compose acima, o start.sh gera /etc/php.d/99-glpi-redis-session.ini com session.save_handler = redis e executa glpi-console glpi:cache:configure --context=core --dsn=redis://.... Caso o config_db.php ainda não exista (antes da instalação do GLPI), basta finalizar a instalação via web/console e reiniciar o container para que a configuração de cache seja aplicada. Para desativar a integração, ajuste as variáveis GLPI_ENABLE_REDIS_SESSIONS e GLPI_CONFIGURE_REDIS_CACHE para false.

Tag summary

Content type

Image

Digest

sha256:9edaeff36

Size

352.6 MB

Last updated

about 2 months ago

docker pull jmbasolucoes/glpi