Containers

Exemplo de Deploy GLPI Seguro com Docker

01/02/2026

🔙 Citado em: Guia Completo: Instalação do GLPI em Servidor Linux (Ubuntu/Debian) com Apache ou Nginx
Utilizando Docker

Este exemplo automatiza a configuração do DocumentRoot para a pasta /var/www/html/public, eliminando o aviso de segurança do GLPI 10.

Referência

Não deixe de analisar o conceito dessa implementação:
Guia de Correção de Segurança: Diretório Raiz do GLPI (DocumentRoot)


1. Arquivo de Configuração do Apache (glpi.conf)

Este arquivo será copiado para dentro do container para substituir a configuração padrão.

<VirtualHost *:80>
    DocumentRoot /var/www/html/public

    <Directory /var/www/html/public>
        AllowOverride All
        Require all granted
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . index.php [L]
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

2. Dockerfile

O Dockerfile utiliza uma imagem base de PHP com Apache e aplica as configurações de segurança.

FROM php:8.1-apache

# Instalação de dependências necessárias para o GLPI
RUN apt-get update && apt-get install -y \
    libpng-dev libjpeg-dev libfreetype6-dev \
    libxml2-dev libicu-dev libzip-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install gd mysqli pdo_mysql intl xml zip bz2 opcache

# Habilita o mod_rewrite do Apache
RUN a2enmod rewrite

# Copia o arquivo de configuração customizado para o Apache
COPY glpi.conf /etc/apache2/sites-available/000-default.conf

# Define o diretório de trabalho
WORKDIR /var/www/html

# Nota: Aqui você deve copiar os arquivos do GLPI para o container
# COPY ./glpi-10.0.15 /var/www/html/

# Garante as permissões corretas para o usuário do Apache
RUN chown -R www-data:www-data /var/www/html

3. Docker Compose (docker-compose.yml)

Para facilitar a orquestração com o banco de dados MariaDB.

version: '3.8'

services:
  glpi:
    build: .
    container_name: glpi_app
    ports:
      - "8080:80"
    volumes:
      - glpi_data:/var/www/html
    environment:
      - TZ=America/Sao_Paulo

  db:
    image: mariadb:10.11
    container_name: glpi_db
    environment:
      - MYSQL_ROOT_PASSWORD=sua_senha_forte
      - MYSQL_DATABASE=glpi
    volumes:
      - db_data:/var/lib/mysql

volumes:
  glpi_data:
  db_data:
Voltar