/linkminers

Prueba

Primary LanguagePHP

linkminers

Repositório de código de prueba de Laravel, Nginx, Mysql, Vuejs, Bootstrap 5, conteinerizado con Docker. En guithub encontré un repositório para desenvolver esta aplicación pequeña que tiene dos componetes: web, api.

En la ruta de inicio es el listado en una tabla de departamentos del Perú, donde pueden ser creados y editados con sus respectivas rutas para la API. En el controlador DepartmentController se usa para los métodos listados abajo:

   GET /department -> lista de departamentos paginados
   GET /department/{id} -> muestra un departamento específico
   PUT /department/{id} -> actualiza un departamento
   POST /department -> crea un nuevo departamento

En el controlador WebController se hayan las rutas web.

   GET / -> INICIO
   GET /department/{id}

Instalación de dependencias y servidor embutido localhost

Si tienes instalado composer y PHP en tu maquina puedes instalar las dependencias de PHP con los comandos

  • composer install
  • php artisan migrate
  • php artisan db:seed

En el caso de querer instalar con el comando php artisan serve renombrar el archivo .env.example para .env y configurar la base de datos

   DB_CONNECTION=mysql
   DB_HOST=mysql
   DB_PORT=3306
   DB_DATABASE=linkminers
   DB_USERNAME=test
   DB_PASSWORD=secret

Docker e instalación de ambiente de programación paquete PHP, MYSQL, NGINX

Mi dominio de Docker no es del todo experto pero encontré este repositório que me ayudó a configurar el ambiente de programación. La documentación esta en ingles y permite crear un ambiente de programación con Docker el repositorio esta en github.

https://github.com/supermavster/docker-laravel-8.git

Puertas

Puertas usadas en el proyecto:

Software Port
nginx 8080
phpmyadmin 8081
mysql 3306
php 9000
xdebug 9001
redis 6379

Levantar la aplicación en Docker

La aplicación laravel esta dentro del directorio source. Renombra el archivo example.env para .env y configura la base de datos:

cp .env.example .env

Compila la imagen docker con el siguiente comando:

docker-compose up --build

Recuerda

La configuraión del banco de datos debe ser la misma en los dos lados .

# .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=db_password
DB_ROOT_PASSWORD=secret
# source/.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=db_user
DB_PASSWORD=db_password

El unico cambio es en DB_HOST en el archivo source/.env cuando es llamado el conteiner mysql que seria el host, ahi tendrias como accesar al phpmyadmin y conectar a la base de datos para laravel:

# source/.env
DB_HOST=mysql

Casos especiales

Para iniciar o levantar los containers ejecuta:

docker-compose up -d

Para parar y remover los volumenes usaremos el comando:

docker-compose down -v

Para actualizar las dependencias via composer de PHP:

docker-compose run --rm composer update
docker-compose run --rm composer install

Para ejecutar el compilador de nodejs (Webpack.mix.js):

docker-compose run --rm npm run dev

Para ejecutar las migraciones:

docker-compose run --rm artisan migrate

Para ejecutar la carga inicial de la base de datos:

docker-compose run --rm artisan db:seed

Si da algun error de session limpia el cache de la aplicación

docker-compose run --rm artisan optimize