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 con Traefik

    traefik-concepts-1.webp

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

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