{"id":140,"date":"2020-01-20T19:20:15","date_gmt":"2020-01-20T19:20:15","guid":{"rendered":"https:\/\/agustinducca.com\/blog\/?p=140"},"modified":"2020-02-24T21:03:03","modified_gmt":"2020-02-24T21:03:03","slug":"como-crear-un-proyecto-de-laravel-6-en-docker","status":"publish","type":"post","link":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/","title":{"rendered":"C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose"},"content":{"rendered":"\n<p>Si bien es cierto que existen muchas opciones a la hora de crear entornos de desarrollo f\u00e1ciles de replicar en PHP, <strong><a rel=\"noreferrer noopener\" aria-label=\"Docker  (se abre en una nueva pesta\u00f1a)\" href=\"https:\/\/www.docker.com\/\" target=\"_blank\">Docker <\/a><\/strong>y su concepto de <em>contenedores<\/em> se est\u00e1n convirtiendo en un est\u00e1ndar de la industria, haciendo que conocer su funcionamiento sea imprescindible para cualquier desarrollador.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Primero lo primero. \u00bfQu\u00e9 es Docker?<\/h4>\n\n\n\n<p>Docker es, b\u00e1sicamente, una herramienta que nos permitir\u00e1 empaquetar nuestro proyecto, sus dependencias y nuestro entorno completo de trabajo dentro de lo que lo que se conoce como contenedores. Estos contenedores tienen la ventaja de que pueden compartirse f\u00e1cilmente y que al ejecutarlos generan una r\u00e9plica exacta de nuestro ambiente de trabajo. <\/p>\n\n\n\n<p>Otra ventaja de los <em>containers<\/em> es que, como su nombre lo indica, est\u00e1n <em>contenidos<\/em>, por lo cual su funcionamiento y las dependencias que instalen son totalmente independientes de las tecnolog\u00edas que tengamos en nuestro equipo y de nuestro sistema operativo.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u00bfPor qu\u00e9 usar Docker y no Homestead? Sus ventajas<\/h4>\n\n\n\n<p>Si bien hay varias diferencias entre un entorno y otro, la principal ventaja que ofrece Docker es su sistema de virtualizaci\u00f3n. Mientras Homestead se ejecuta en una maquina virtual, consumiendo recursos f\u00edsicos de nuestro pc, los contenedores interact\u00faan directamente con el sistema operativo, cargando solo las dependencias necesarias para funcionar. Esto significa un ahorro enorme de recursos y una carga mucho m\u00e1s ligera para nuestro sistema. Por otro lado, Docker tiene la ventaja de que sus contenedores pueden ser desplegados en ambientes de producci\u00f3n. Mientras que con Homestead s\u00f3lo contaremos con un entorno de desarrollo, los contenedores pueden ser <em>deployados <\/em>f\u00e1cilmente. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Creando un contenedor con LaraDock<\/h4>\n\n\n\n<p>Existen varias formas de crear un contenedor de Laravel, la primera de ellas es mediante <strong><a rel=\"noreferrer noopener\" aria-label=\"Laradock (se abre en una nueva pesta\u00f1a)\" href=\"https:\/\/laradock.io\/\" target=\"_blank\">Laradock<\/a><\/strong>. Esta herramienta fue creada por miembros de la comunidad de Laravel y nos brinda todo lo necesario para tener un entorno de desarrollo PHP completo sin grandes esfuerzos.<\/p>\n\n\n\n<p>Lo primero que haremos ser\u00e1 clonar el repositorio de Laradock a nuestro equipo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git clone https:\/\/github.com\/Laradock\/laradock.git<\/pre>\n\n\n\n<p>Nos metemos dentro del repositorio<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd laradock<\/pre>\n\n\n\n<p>Ah\u00ed encontraremos un archivo <em>.env-example<\/em> que deberemos duplicar y renombrarlo como .<em>env<\/em>. Pero ATENCI\u00d3N que este no es el .env de Laravel, sino un archivo de configuraci\u00f3n para nuestro contenedor.<\/p>\n\n\n\n<p>Aqu\u00ed vamos a tener que modificar la variable  <code>DOCKER_HOST_IP<\/code>&nbsp; con la direcci\u00f3n IP de nuestro host, usualmente es 127.0.0.1.<\/p>\n\n\n\n<p>Dentro del directorio de Laradock nos encontraremos con todos los servicios que \u00e9ste provee y que podremos usar para incluir en nuestro container.<\/p>\n\n\n\n<p>Para este ejemplo, vamos a usar NGINX, Postgres y PHPMyAdmin. <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker-compose up -d nginx postgres phpmyadmin<\/pre>\n\n\n\n<p>Si est\u00e1s en Linux deber\u00e1s anteponer <em>sudo<\/em>. El <em>-d<\/em> har\u00e1 que esta tarea se ejecute de forma <em>desatachada<\/em> y podamos seguir usando la consola cuando docker haya terminado de descargar todas las dependencias del proyecto.<\/p>\n\n\n\n<p>Al culminar la descarga, ya tendremos nuestro contenedor listo y funcionando. Podremos acceder a \u00e9l mediante<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker-compose exec workspace bash<\/pre>\n\n\n\n<p>Estos nos abrir\u00e1 una terminal dentro de nuestro container y podremos proseguir con la instalaci\u00f3n de Laravel y todo lo que necesitemos.<\/p>\n\n\n\n<p>Si este comando falla, deber\u00e1s cerciorarte del nombre de tu container mediante el comando <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker ps <\/pre>\n\n\n\n<p>Y reemplazarlo en el comando anterior.<\/p>\n\n\n\n<p>Con esto, ya tendr\u00e1s todo lo necesario para trabajar o compartir tu repositorio. No olvides que a partir de ac\u00e1 vas a tener que crear y configurar tu base de datos, crear tu archivo de entorno (.env), ejecutar migraciones, etc, etc. Supondr\u00e9 que ya sabes c\u00f3mo hacerlo, pero si ten\u00e9s dudas con este punto, no dudes en dejarla en los comentarios e intentar\u00e9 ayudarte.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Creando un contenedor manualmente con Docker-Compose<\/h4>\n\n\n\n<p>Otra forma de crear tus contenedores es mediante la creaci\u00f3n de un archivo docker-compose. Personalmente prefiero esta segunda opci\u00f3n ya que me da m\u00e1s libertad de elegir qu\u00e9 tecnolog\u00edas usar, pero es s\u00f3lo una cuesti\u00f3n de gustos.<\/p>\n\n\n\n<p>Para comenzar, lo primero que haremos ser\u00e1 descargar la \u00faltima versi\u00f3n de Laravel (o la que queramos). Puedes hacerlo desde su repositorio oficial de <strong><a rel=\"noreferrer noopener\" aria-label=\"GitHub (se abre en una nueva pesta\u00f1a)\" href=\"https:\/\/github.com\/laravel\" target=\"_blank\">GitHub<\/a><\/strong> mediante el comando <\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git clone https:\/\/github.com\/laravel\/laravel.git<\/pre>\n\n\n\n<p>Una vez clonado, accedemos a \u00e9l y comenzaremos a incluir los <em>dockerfiles<\/em> necesarios para crear nuestro entorno.<\/p>\n\n\n\n<p>Para este ejemplo, al igual que el anterior, usaremos NGINX y Postgres, pero le especificaremos que use la imagen de PHP-FPM  (<em>FastCGI Process Manager<\/em>)&nbsp; el cual mejora considerablemente el uso de recursos al combinarlo con Nginx.<\/p>\n\n\n\n<p>Para esto, dentro de nuestro repositorio, vamos a crear un directorio al que llamaremos <strong>docker<\/strong> y dentro de \u00e9l vamos a crear dos carpetas. Una llamada <strong>php-fpm<\/strong> y la otra <strong>nginx<\/strong>.<\/p>\n\n\n\n<p>Dentro del directorio php-fpm, vamos a crear un dockerfile. \u00c9ste ser\u00e1 utilizado por docker-compose para descargar todas las herramientas y dependencias necesarias para tener una PHP dentro del contenedor.<\/p>\n\n\n\n<p>Puedes crear tu archivo dockerfile muy f\u00e1cilmente con cualquier <a href=\"https:\/\/agustinducca.com\/blog\/los-mejores-ide-y-editores-de-codigo-para-desarrolladores-del-2020\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"editor de c\u00f3digo (se abre en una nueva pesta\u00f1a)\"><strong>editor de c\u00f3digo<\/strong><\/a>. S\u00f3lo debes crear un archivo nuevo y colocarle el nombre <strong>Dockerfile <\/strong>sin ninguna extensi\u00f3n.<\/p>\n\n\n\n<p>Dentro de ese archivo incluiremos lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">FROM php:7.2-fpm\n\n# Instala Composer\nRUN curl -sS https:\/\/getcomposer.org\/installer | php -- --install-dir=\/usr\/local\/bin --filename=composer\n\n# instala extensiones de PHP necesarias\nRUN apt-get update &amp;&amp; \\\n    apt-get install -y libzip-dev zlib1g-dev libonig-dev zlibc libicu-dev libpq-dev libmemcached-dev locales vim.tiny git\n\nRUN docker-php-ext-install mbstring zip pdo_pgsql\n\n# Genera 'locale' para es_AR\nRUN echo \"es_AR.UTF-8 UTF-8\" &gt;&gt; \/etc\/locale.gen\nRUN locale-gen\nRUN echo \"es      es_AR.UTF-8\" &gt;&gt; \/etc\/locale.alias\n\nWORKDIR \/var\/www<\/pre>\n\n\n\n<p>Con esto, docker descargar\u00e1 e instalar\u00e1 todo lo necesario para que PHP-FPM y Laravel funcionen. Como ver\u00e1s, estamos usando la versi\u00f3n 7.2 de PHP para poder correr Laravel 6 sin problemas, pero puedes especificar la que necesites.<\/p>\n\n\n\n<p>Lo siguiente ser\u00e1 hacer lo mismo con NGINX, para ello, vamos al directorio que creamos y generamos otro archivo llamado <strong>Dockerfile<\/strong>.<\/p>\n\n\n\n<p>En \u00e9l, pondremos lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">FROM nginx:latest<br><br>ADD .\/docker\/nginx\/vhost.conf \/etc\/nginx\/conf.d\/default.conf<br>WORKDIR \/var\/www<\/pre>\n\n\n\n<p>Esto tomar\u00e1 la \u00faltima imagen disponible de Nginx y lo incluir\u00e1 en nuestro container.<\/p>\n\n\n\n<p>Dentro de este mismo directorio vamos a crear otro archivo al que llamaremos vhost.conf  y dentro de \u00e9l escribiremos el siguiente c\u00f3digo:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">server {\n listen 80;\n index index.php index.html;\n root \/var\/www\/public;\n location \/ {\n try_files $uri \/index.php?$args;\n }\n location ~ .php$ {\n fastcgi_split_path_info ^(.+.php)(\/.+)$;\n fastcgi_pass app:9000;\n fastcgi_index index.php;\n include fastcgi_params;\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n fastcgi_param PATH_INFO $fastcgi_path_info;\n }\n }<\/pre>\n\n\n\n<p>Ahora lleg\u00f3 la hora de crear nuestro archivo docker-compose. Vamos a la ra\u00edz de nuestro repositorio y creamos un archivo llamado <strong>docker-compose.yml<\/strong>. Dentro de \u00e9l, vamos a llamar a los dockerfiles que creamos anteriormente y a configurar los puertos que expondremos para acceder a nuestra aplicaci\u00f3n y a nuestra base de datos.<\/p>\n\n\n\n<p>Nuestro docker-compose deber\u00eda quedar as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">version: '3'\n\nservices:\n  web:\n    build:\n      context: .\/\n      dockerfile: docker\/nginx\/Dockerfile\n    volumes:\n      - .\/:\/var\/www\n    ports:\n      - 8095:80\n    links:\n      - app\n  app:\n    build:\n      context: .\/\n      dockerfile: docker\/php-fpm\/Dockerfile\n    volumes:\n      - .\/:\/var\/www\n    ports:\n      - 9000:9000\n    links:\n      - db\n    environment:\n      - DB_PORT=5432\n      - DB_HOST=db\n      - DB_CONNECTION=pgsql\n  db:\n    image: postgres:9-alpine\n    environment:\n      - POSTGRES_PASSWORD=tupassword\n    ports:\n      - 5432:5432<\/pre>\n\n\n\n<p>En este caso, vamos a <em>mapear<\/em> el puerto 8095 de nuestra pc con el puerto 80 del contenedor. Esto quiere decir que cuando queramos acceder a nuestra aplicaci\u00f3n, lo haremos mediante <strong>http:\/\/localhost:8095<\/strong>. Por supuesto que esto lo puedes modificar a tu antojo.<\/p>\n\n\n\n<p>La base de datos, por otro lado, ser\u00e1 accesible mediante el puerto 5432. Como vez, tambi\u00e9n est\u00e1 mapeado al puerto 5432 del contenedor y esto lo hacemos para reservar ese puerto y evitar que cada vez que levantemos el container el puerto cambie.<\/p>\n\n\n\n<p>Con todo esto, ya estamos en condiciones que lanzar nuestro contenedor. Para eso, usamos el comando:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker-compose up<\/pre>\n\n\n\n<p>Una vez finalizada la descarga y configuraci\u00f3n, ya podremos acceder al contenedor y comenzar a configurar todas las dependencias del proyecto.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Consideraciones finales<\/h4>\n\n\n\n<p>Esta fue una gu\u00eda r\u00e1pida para construir un contenedor en docker, suponiendo que ya cuentas con una base en el manejo de esta tecnolog\u00eda, como as\u00ed tambi\u00e9n, que ya tienes experiencia previa en la construcci\u00f3n de un proyecto de Laravel. <\/p>\n\n\n\n<p>Docker es una herramienta muy poderosa que te simplificar\u00e1 muchas cosas, en especial si trabajas junto a otros <strong>desarrolladores <\/strong>en un mismo proyecto, adem\u00e1s de que es un skill que te abrir\u00e1 puertas de cara al mercado laboral.<\/p>\n\n\n\n<p>Si ten\u00e9s alguna duda o quer\u00e9s que profundice en alg\u00fan aspecto de este art\u00edculo, no dudes de dejarlo en los comentarios. <\/p>\n\n\n\n<p><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Si bien es cierto que existen muchas opciones a la hora de crear entornos de desarrollo f\u00e1ciles de replicar en PHP, Docker y su concepto de contenedores se est\u00e1n convirtiendo en un est\u00e1ndar de la industria, haciendo que conocer su funcionamiento sea imprescindible para cualquier desarrollador. Primero lo primero. \u00bfQu\u00e9 es Docker? Docker es, b\u00e1sicamente,<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":3,"featured_media":143,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[4,74,75],"class_list":["post-140","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria","tag-developer","tag-docker","tag-docker-compose"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>1\ufe0f\u20e3 C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose - Full Stack Blogger<\/title>\n<meta name=\"description\" content=\"En esta breve gu\u00eda encontrar\u00e1s todo lo necesario para crear un contenedor Docker para tus proyectos en PHP Laravel 6 mediante el uso de Docker-compose. \u2764\ufe0f\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"1\ufe0f\u20e3 C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose - Full Stack Blogger\" \/>\n<meta property=\"og:description\" content=\"En esta breve gu\u00eda encontrar\u00e1s todo lo necesario para crear un contenedor Docker para tus proyectos en PHP Laravel 6 mediante el uso de Docker-compose. \u2764\ufe0f\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"Full Stack Blogger\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-20T19:20:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-02-24T21:03:03+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Agustin Ducca Pantaleon\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Agustin Ducca Pantaleon\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/\"},\"author\":{\"name\":\"Agustin Ducca Pantaleon\",\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/#\\\/schema\\\/person\\\/a9cb44280de0040e5c0ed46bf28cb57c\"},\"headline\":\"C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose\",\"datePublished\":\"2020-01-20T19:20:15+00:00\",\"dateModified\":\"2020-02-24T21:03:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/\"},\"wordCount\":1221,\"commentCount\":14,\"image\":{\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/docker.png\",\"keywords\":[\"developer\",\"docker\",\"docker-compose\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/\",\"url\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/\",\"name\":\"1\ufe0f\u20e3 C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose - Full Stack Blogger\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/docker.png\",\"datePublished\":\"2020-01-20T19:20:15+00:00\",\"dateModified\":\"2020-02-24T21:03:03+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/#\\\/schema\\\/person\\\/a9cb44280de0040e5c0ed46bf28cb57c\"},\"description\":\"En esta breve gu\u00eda encontrar\u00e1s todo lo necesario para crear un contenedor Docker para tus proyectos en PHP Laravel 6 mediante el uso de Docker-compose. \u2764\ufe0f\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/como-crear-un-proyecto-de-laravel-6-en-docker\\\/#primaryimage\",\"url\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/docker.png\",\"contentUrl\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/docker.png\",\"width\":1000,\"height\":600,\"caption\":\"Laravel 6 with Docker Container\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/\",\"name\":\"Full Stack Blogger\",\"description\":\"Mi vida entre l\u00edneas de c\u00f3digo\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/#\\\/schema\\\/person\\\/a9cb44280de0040e5c0ed46bf28cb57c\",\"name\":\"Agustin Ducca Pantaleon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffdafc884a1ebae3226babd7365e54f65e5cd3ce52f29f315bf1f837fa84e80b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffdafc884a1ebae3226babd7365e54f65e5cd3ce52f29f315bf1f837fa84e80b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ffdafc884a1ebae3226babd7365e54f65e5cd3ce52f29f315bf1f837fa84e80b?s=96&d=mm&r=g\",\"caption\":\"Agustin Ducca Pantaleon\"},\"url\":\"https:\\\/\\\/agustinducca.com\\\/blog\\\/author\\\/aducca\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"1\ufe0f\u20e3 C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose - Full Stack Blogger","description":"En esta breve gu\u00eda encontrar\u00e1s todo lo necesario para crear un contenedor Docker para tus proyectos en PHP Laravel 6 mediante el uso de Docker-compose. \u2764\ufe0f","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/","og_locale":"es_ES","og_type":"article","og_title":"1\ufe0f\u20e3 C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose - Full Stack Blogger","og_description":"En esta breve gu\u00eda encontrar\u00e1s todo lo necesario para crear un contenedor Docker para tus proyectos en PHP Laravel 6 mediante el uso de Docker-compose. \u2764\ufe0f","og_url":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/","og_site_name":"Full Stack Blogger","article_published_time":"2020-01-20T19:20:15+00:00","article_modified_time":"2020-02-24T21:03:03+00:00","og_image":[{"width":1000,"height":600,"url":"http:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png","type":"image\/png"}],"author":"Agustin Ducca Pantaleon","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Agustin Ducca Pantaleon","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/#article","isPartOf":{"@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/"},"author":{"name":"Agustin Ducca Pantaleon","@id":"https:\/\/agustinducca.com\/blog\/#\/schema\/person\/a9cb44280de0040e5c0ed46bf28cb57c"},"headline":"C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose","datePublished":"2020-01-20T19:20:15+00:00","dateModified":"2020-02-24T21:03:03+00:00","mainEntityOfPage":{"@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/"},"wordCount":1221,"commentCount":14,"image":{"@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png","keywords":["developer","docker","docker-compose"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/","url":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/","name":"1\ufe0f\u20e3 C\u00f3mo crear un proyecto de Laravel 6 en Docker. La magia de Docker-Compose - Full Stack Blogger","isPartOf":{"@id":"https:\/\/agustinducca.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/#primaryimage"},"image":{"@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png","datePublished":"2020-01-20T19:20:15+00:00","dateModified":"2020-02-24T21:03:03+00:00","author":{"@id":"https:\/\/agustinducca.com\/blog\/#\/schema\/person\/a9cb44280de0040e5c0ed46bf28cb57c"},"description":"En esta breve gu\u00eda encontrar\u00e1s todo lo necesario para crear un contenedor Docker para tus proyectos en PHP Laravel 6 mediante el uso de Docker-compose. \u2764\ufe0f","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/agustinducca.com\/blog\/como-crear-un-proyecto-de-laravel-6-en-docker\/#primaryimage","url":"https:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png","contentUrl":"https:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png","width":1000,"height":600,"caption":"Laravel 6 with Docker Container"},{"@type":"WebSite","@id":"https:\/\/agustinducca.com\/blog\/#website","url":"https:\/\/agustinducca.com\/blog\/","name":"Full Stack Blogger","description":"Mi vida entre l\u00edneas de c\u00f3digo","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/agustinducca.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/agustinducca.com\/blog\/#\/schema\/person\/a9cb44280de0040e5c0ed46bf28cb57c","name":"Agustin Ducca Pantaleon","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/ffdafc884a1ebae3226babd7365e54f65e5cd3ce52f29f315bf1f837fa84e80b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ffdafc884a1ebae3226babd7365e54f65e5cd3ce52f29f315bf1f837fa84e80b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ffdafc884a1ebae3226babd7365e54f65e5cd3ce52f29f315bf1f837fa84e80b?s=96&d=mm&r=g","caption":"Agustin Ducca Pantaleon"},"url":"https:\/\/agustinducca.com\/blog\/author\/aducca\/"}]}},"featured_image_src":"https:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png","featured_image_src_square":"https:\/\/agustinducca.com\/blog\/wp-content\/uploads\/2020\/01\/docker.png","author_info":{"display_name":"Agustin Ducca Pantaleon","author_link":"https:\/\/agustinducca.com\/blog\/author\/aducca\/"},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":23,"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":198,"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/posts\/140\/revisions\/198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/media\/143"}],"wp:attachment":[{"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/agustinducca.com\/blog\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}