Mediawiki

 Entiendo que deseas un enfoque más integrado utilizando `docker-compose` y que las extensiones provienen de la misma fuente que MediaWiki. Aquí tienes una solución actualizada para lograr esto:


**Paso 1: Crear el archivo docker-compose.yml**


Crea un archivo llamado `docker-compose.yml` en un nuevo directorio vacío. Agrega el siguiente contenido al archivo:


```yaml

version: '3.7'


services:

  mediawiki:

    build:

      context: .

      args:

        MEDIAWIKI_VERSION: 1.35.2

    ports:

      - 8080:80

    volumes:

      - ./mediawiki-images:/var/www/html/images

      - ./LocalSettings.php:/var/www/html/LocalSettings.php

    depends_on:

      - database

  database:

    image: mysql:5.7

    environment:

      MYSQL_DATABASE: mediawiki

      MYSQL_USER: mediawiki_user

      MYSQL_PASSWORD: mediawiki_password

      MYSQL_ROOT_PASSWORD: root_password

    volumes:

      - ./mysql-data:/var/lib/mysql

```


No olvides cambiar las contraseñas en las variables de entorno.


**Paso 2: Crear el archivo Dockerfile**


Crea un archivo llamado `Dockerfile` en el mismo directorio que el archivo `docker-compose.yml`. Agrega el siguiente contenido al archivo:


```Dockerfile

FROM php:7.4-apache


# Instalar dependencias y extensiones necesarias para MediaWiki

RUN apt-get update && apt-get install -y \

    libicu-dev \

    libzip-dev \

    unzip \

    && docker-php-ext-install -j$(nproc) intl mysqli opcache zip


# Habilitar mod_rewrite

RUN a2enmod rewrite


# Copiar el archivo de configuración personalizado de Apache

COPY ./000-default.conf /etc/apache2/sites-available/000-default.conf


# Instalar MediaWiki

ARG MEDIAWIKI_VERSION=1.35.2

RUN curl -L https://releases.wikimedia.org/mediawiki/${MEDIAWIKI_VERSION%.*}/mediawiki-${MEDIAWIKI_VERSION}.tar.gz | tar xz \

    && mv mediawiki-${MEDIAWIKI_VERSION} /var/www/html


# Configurar los permisos de los directorios

RUN chown -R www-data:www-data /var/www/html


# Instalar extensiones de MediaWiki

COPY ./extensions /var/www/html/extensions

RUN chmod -R 755 /var/www/html/extensions

```


**Paso 3: Crear el archivo de configuración de Apache**


Crea un archivo llamado `000-default.conf` en el mismo directorio que el `Dockerfile`. Agrega el siguiente contenido al archivo:


```apache

<VirtualHost *:80>

    ServerAdmin webmaster@localhost


    DocumentRoot /var/www/html

    <Directory /var/www/html>

        Options FollowSymLinks

        AllowOverride All

        Require all granted

    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

```


**Paso 4: Descargar extensiones de MediaWiki**


Descarga las extensiones que deseas instalar desde la página oficial del repositorio de extensiones de MediaWiki en formato `.tar.gz` y colócalas dentro de un nuevo directorio llamado `extensions` en el mismo directorio que el `Dockerfile`.


Descomprime las extensiones con el siguiente comando (reemplaza el nombre de la extensión según corresponda):


```bash

tar -xzf example_extension.tar.gz -C extensions/

```


**Paso 5: Copiar el archivo LocalSettings.php**


Copia tu archivo `LocalSettings.php` de tu instalación actual de MediaWiki al directorio principal que contiene el `Dockerfile` y el `docker-compose.yml`.


**Paso 6: Construir e iniciar los contenedores**


Ejecuta el siguiente comando en el directorio donde se encuentra el archivo `docker-compose.yml` para construir e iniciar los contenedores:


```bash

docker-compose up -d

```


Una vez que los contenedores estén en ejecución, tu instancia de MediaWiki debería estar disponible en `http://localhost:8080`. Asegúrate de actualizar la configuración de la base de datos en `LocalSettings.php` para que coincida con las variables de entorno que configuraste en el archivo `docker-compose.yml`.


Con estos pasos, tendrás una solución integrada utilizando `docker-compose` para migrar tu instancia actual de MediaWiki a Docker con Apache, MySQL y las extensiones requeridas.

Comentarios

Entradas populares de este blog

Migración

Docker alpine

Questasim