Skip to main content

Wordpress

WordPress es un sistema de gestión de contenidos lanzado el 27 de mayo de 2003, enfocado a la creación de cualquier tipo de página web. Originalmente alcanzó una gran popularidad en la creación de blogs, para luego convertirse en una de las principales herramientas para la creación de páginas web comerciales.

wp.png

Enlaces de interés

Blog Tool, Publishing Platform, and CMS – WordPress.org

Requisitos

Imagen

Repositorios de Docker Hub:


    Portainer- Nuevo «stack»

    Add a new stack – Portainer Documentation

    Web editor

    En Portainer «Stack» agregamos nuevo usando el editor WEB pegando el contenido del fichero «docker-compose.yml» y el contenido del fichero de variables2.15-docker_add_stack_web_editor.gif

    Fichero de variables «.env»

    # MariaDB
    MYSQL_ROOT_PASSWORD=your_root_password
    MYSQL_DATABASE=wordpress
    MYSQL_USER=wordpress
    MYSQL_PASSWORD=your_wordpress_db_password
    # WordPress
    WORDPRESS_DB_HOST=db
    WORDPRESS_DB_NAME=${MYSQL_DATABASE}
    WORDPRESS_DB_USER=${MYSQL_USER}
    WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD}
    WORDPRESS_TABLE_PREFIX=wp_

    Fichero docker-compose

    services:
      wordpress:
        image: wordpress
        container_name: wordpress
        env_file: stack.env
        restart: unless-stopped
        depends_on:
          - db
        volumes:
          - html:/var/www/html
        ports:
          - 8000:80
    
      db:
        image: mariadb
        container_name: wordpress_db
        env_file: stack.env
        restart: unless-stopped
        volumes:
          - db:/var/lib/mysql
    
    volumes:
      html:
      db:

    En este punto ya puedes ir a http://docker_IP:8080

    Publicando detrás de un proxy

    Crear registro DNS

    En el proveedor que aloja el servidor DNS público, crear un registro DNS que resuelva la IP pública que llega al Proxy hacia un nombre del estilo "host.domain.com"

    NGINX proxy

    image.png

    Para publicar el contenedor detrás de de NGINX proxy, deberás añadir al final del fichero "docker-compose.yaml"  lo siguiente

    services:
      wordpress:
        image: wordpress
        container_name: wordpress
        env_file: stack.env
        restart: unless-stopped
        depends_on:
          - db
        volumes:
          - html:/var/www/html
        networks:
          - proxy
          - backend
    
      db:
        image: mariadb
        container_name: wordpress_db
        env_file: stack.env
        restart: unless-stopped
        volumes:
          - db:/var/lib/mysql
        networks:
          - backend
    
    volumes:
      html:
      db:
    
    networks:
      proxy:
        external: true
      backend:
        driver: bridge
    Crear un nuevo "proxy host"

    Añade un nuevo proxy host con el nombre de dominio creado en el paso anterior redirigido hacia el nombre del contenedor y el puerto que use:

    image.png

    Publicando con Traefik

    traefik-concepts-1.webp

    Para publicar el contenedor detrás del proxy proxy Traefik, el contenido del fichero "docker-compose.yml"  es el siguiente:

    services:
      wordpress:
        image: wordpress
        container_name: wordpress
        env_file: stack.env
        restart: unless-stopped
        depends_on:
          - db
        labels:
          - traefik.enable=true
          - traefik.http.routers.blog.rule=Host(`blog.dominio.com`)
          - traefik.http.routers.blog.tls=true
          - traefik.http.routers.blog.tls.certresolver=letsencrypt
        volumes:
          - html:/var/www/html
        networks:
          - backend
          - traefik_public
    
      db:
        image: mariadb
        container_name: wordpress_db
        env_file: stack.env
        restart: unless-stopped
        labels:
          - traefik.enable=false
        volumes:
          - db:/var/lib/mysql
        networks:
          - backend
    
    volumes:
      html:
      db:
    
    networks:
      backend:
      traefik_public:
        external: true