“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
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:Después de modificar el archivo
docker-compose.yml
, guardar los cambios y reiniciar los contenedores Docker utilizando el siguiente comando: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.