es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“No funcionó nginx en el proyecto docker / laravel.”

Buenos días, soy un usuario novato en Docker. Iba a lanzar Docker para un proyecto de Laravel, y cuando ejecuto este proyecto con la ayuda de docker-compose, nginx se ejecuta en el puerto 8000, pero dentro del navegador cuando se abre muestra el archivo docker-compose.yml.

Archivo docker-compose.yml

version: "3.8"
services:
server:
image: 'nginx:stable-alpine'
ports:
- '80:80'
volumes:
- ./src:/var/www/html
- ./Docker/nginx/:/etc/nginx/conf.d/
php:
build:
context: .
dockerfile: Docker/php/php.Dockerfile
volumes:
- ./src:/var/www/html:delegated
mysql:
image: mysql:5.7
env_file:
- Docker/mysql/mysql.env

Archivo nginx.conf

server {
listen 80;
index index.php index.html;
server_name localhost;
root /var/www/html/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}

Estructura de carpetas:

Docker
php
nginx
mysql
src
docker-compose.yml

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¿Cómo acceder al proyecto Laravel en el puerto 8000 desde el navegador mientras se usa Docker y docker-compose con NGINX?

    Cuando se ejecuta un proyecto Laravel con Docker y docker-compose, NGINX se utiliza generalmente como servidor web y escucha en el puerto 80. Sin embargo, en ocasiones el proyecto Laravel puede que no sea accesible a través del navegador en el puerto 80, sino en el puerto 8000.

    Para poder acceder al proyecto Laravel en el puerto 8000 desde el navegador, se puede modificar el archivo docker-compose.yml para mapear el puerto 8000 al puerto 80 del contenedor NGINX.

    Para esto, se puede modificar el archivo docker-compose.yml de esta forma:

    version: "3.8"
    services:
      server:
        image: "nginx:stable-alpine"
        ports:
          - "8000:80" # <<<< Cambiar esta línea para mapear el puerto 8000 al puerto 80
        volumes:
          - ./src:/var/www/html
          - ./Docker/nginx/:/etc/nginx/conf.d/
      php:
        build:
          context: .
          dockerfile: Docker/php/php.Dockerfile
        volumes:
          - ./src:/var/www/html:delegated
      mysql:
        image: mysql:5.7
        env_file:
          - Docker/mysql/mysql.env
    

    Después de modificar el archivo docker-compose.yml, guardar los cambios y reiniciar los contenedores Docker utilizando el siguiente comando:

    docker-compose up -d
    

    Con esta configuración, el proyecto Laravel debería estar disponible en el navegador en la dirección `http://localhost:8000`.

    Espero que esto ayude. Si tienes alguna pregunta, déjame saber.

Comments are closed.