Skip to content

Instantly share code, notes, and snippets.

@ijaureguialzo
Last active April 29, 2024 17:45
Show Gist options
  • Save ijaureguialzo/bf10504c742b44122ba62bfafe772c1c to your computer and use it in GitHub Desktop.
Save ijaureguialzo/bf10504c742b44122ba62bfafe772c1c to your computer and use it in GitHub Desktop.
Crear un proyecto Laravel usando solo Docker

Laravel con Docker

Crear la carpeta para alojar los proyectos

Linux y macOS

mkdir laravel; cd laravel

Windows

mkdir laravel & cd laravel

En Windows, usar CMD.EXE para lanzar los comandos, no PowerShell.

Estructura de carpetas

Una vez completados todos los pasos, la estructura quedará así:

.
└── laravel
    ├── app
    └── laradock

Descargar Laradock

  1. Clonar el repositorio:

    git clone https://github.com/Laradock/laradock.git
    

    Para que funcione, tiene que estar instalado el cliente de línea de comandos de Git.

  2. Copiar el fichero .env.example a .env:

    Linux y macOS

    cd laradock && cp .env.example .env && cd ..
    

    Windows

    cd laradock & copy .env.example .env & cd ..
    
  3. Editar el fichero .env de la carpeta laradock:

    • Modificar la ruta de la aplicación para que apunte a la carpeta laradock poniendo APP_CODE_PATH_HOST=../app
    • Si disponemos de más de una instalación de Laradock, modificar la variable COMPOSE_PROJECT_NAME y asignarle un nombre único para que los contenedores tengan nombres diferentes.
    • Seleccionar la versión de PHP: PHP_VERSION=8.2
    • Modificar el driver de base de datos de phpMyAdmin: PMA_DB_ENGINE=mariadb

Nuevo proyecto de Laravel

Generar el proyecto

⚠️ En estos comandos, si se ha renombrado app, cambiar solo la última ocurrencia, después de laravel/laravel.

Linux y macOS

docker run -it --rm --name php-cli \
    -v "$PWD:/usr/src/app" thecodingmachine/php:8.2-v4-slim-cli \
    composer create-project --prefer-dist laravel/laravel app

Windows

docker run -it --rm --name php-cli ^
    -v "%CD%:/usr/src/app" thecodingmachine/php:8.2-v4-slim-cli ^
    composer create-project --prefer-dist laravel/laravel app

(Re)arrancar los contenedores

Los comandos de docker-compose se lanzan en la carpeta laradock.

Arrancar los contenedores necesarios:

docker compose up -d nginx mariadb phpmyadmin workspace

Y para reiniciar un contenedor concreto:

docker compose restart nginx

Crear la base de datos

  1. Acceder a phpMyAdmin

    • Servidor mariadb y usuario root/root.
    • Crear la base de datos app y el usuario app/app.
  2. Editar el .env de la aplicación

    DB_CONNECTION=mysql
    DB_HOST=mariadb
    DB_PORT=3306
    DB_DATABASE=app
    DB_USERNAME=app
    DB_PASSWORD=app
    

Acceder al sitio web

Página principal: http://localhost

Captura-de-pantalla-2020-11-15-a-las-11-21-17

Si en Windows da un error de permiso denegado, entrar al workspace (ver siguiente sección) y lanzar el comando: chown -R laradock:laradock /var/www.

Utilidades

Lanzar comandos en el proyecto (composer, artisan, npm...)

docker compose exec workspace /bin/bash

Y después el comando que necesitemos. Por ejemplo:

php artisan tinker

o

php artisan make:model Tarea -mcr

Consola de MariaDB

docker compose exec mariadb mysql -u root -proot

Añadir soporte para fechas en castellano

Editar el fichero .env de laradock y activar la opción PHP_FPM_INSTALL_ADDITIONAL_LOCALES=true.

En la variable PHP_FPM_ADDITIONAL_LOCALES escribir la lista de idiomas adicionales, como por ejemplo es_ES.UTF-8 para castellano.

@ijaureguialzo
Copy link
Author

You should be able to create more databases in phpMyAdmin, just access http://localhost:8081/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment