• Vamos a clonar el repositorio necesario para la aplicación.

      alejandrogv@AlejandroGV:~/docker/php$ git clone https://github.com/evilnapsis/bookmedik.git
    
  • Crearemos un repositorio con la siguiente estructura.

      alejandrogv@AlejandroGV:~/docker/php/php_docker$ tree
      .
      ├── build
      │   ├── bookmedik
      │   ├── Dockerfile
      │   └── script.sh
      ├── deploy
      │   └── docker-compose.yml
      └── README.md
    
  • En el fichero docker-compose añadimos lo siguiente.

      version: "3.1"
    
      services:
        db:
          container_name: mysql
          image: mariadb
          restart: always
          environment:
            MYSQL_DATABASE: bookmedik
            MYSQL_USER: bookmedik
            MYSQL_PASSWORD: admin    
            MYSQL_ROOT_PASSWORD: admin
          volumes:
            - /opt/mysql_wp:/var/lib/mysql
    
  • Y en la carpeta build crearemos un fichero Dockerfile que rellenaremos de la siguiente forma.

      FROM debian
    
      RUN apt-get update && apt-get install -y apache2 libapache2-mod-php7.3 php7.3 php7.3-mysql && apt-get cl$
      RUN rm /var/www/html/index.html
    
      ENV APACHE_SERVER_NAME=www.bookmedik-alegv.org
      ENV DATABASE_USER=admin    
      ENV DATABASE_PASSWORD=admin    
      ENV DATABASE_HOST=bd
    
      EXPOSE 80
    
      COPY ./bookmedik /var/www/html
      ADD script.sh /usr/local/bin/script.sh
    
      RUN chmod +x /usr/local/bin/script.sh
    
      CMD ["/usr/local/bin/script.sh"]
    
  • Y en el mismo directorio crearemos un fichero script.sh en cual tendrá el siguiente contenido.

      #!/bin/bash
    
      sed -i 's/$this->usuario="admin";/$this->usuario="'${DATABASE_USER}'";/g' /var/www/html/core/controller/Database.php
      sed -i 's/$this->pass="";/$this->pass="'${DATABASE_PASSWORD}'";/g' /var/www/html/core/controller/Database.php
      sed -i 's/$this->host="localhost";/$this->host="'${DATABASE_HOST}'";/g' /var/www/html/core/controller/Database.php
      apache2ctl -D FOREGROUND
    
  • Vamos a levantarlo.

      root@AlejandroGV:/home/alejandrogv/docker/php/php_docker/build# docker build -t alegv/bookmedik:v1 .
    
  • Ahora tenemos que modifcar nuestro fichero docker-compose.yml añadiendo un nuevo contenedor donde alojaremos nuestra aplicación.

      bookmedik:
         container_name: bookmedik
         image: alegv/bookmedik:v1
         restart: always
         ports:
           - 8082:80
         volumes:
           - /opt/bookmedik:/var/log/apache2
    
  • vamos a usar el script de generación de tablas sobre nuestro contenedor de mariadb.