Am un proiect bazat pe laravel pe care trebuie să-l găzduiesc pe oceanul digital folosind docker. docker funcționează bine pe localhost, dar arată 404 pe server, dar phpmyadmin funcționează bine și pe server, care rulează pe 8080
port.
Aici e al meu docker-compose.yml
versiunea: '3'
retele:
laravel:
Servicii:
nginx:
imagine: nginx:stable-alpine
container_name: nginx
porturi:
- „8088:80”
volume:
- ./src:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depinde de:
- php
- mysql
retele:
- laravel
mysql:
imagine: mysql:5.7.22
reporniți: dacă nu este oprit
tty: adevărat
porturi:
- „4306:3306”
volume:
- ./mysql:/var/lib/mysql
mediu inconjurator:
MYSQL_ROOT_PASSWORD: „rădăcină”
MYSQL_DATABASE: „laravel_test”
MYSQL_USER: „rădăcină”
MYSQL_PASSWORD: „rădăcină”
SERVICE_TAGS: „dev”
SERVICE_NAME: „mysql”
retele:
- laravel
php:
construi:
context: .
dockerfile: Dockerfile
nume_container: php
volume:
- ./src:/var/www/html
porturi:
- „9000:9000”
reporniți: dacă nu este oprit
retele:
- laravel
phpmyadmin:
imagine: phpmyadmin
reporniți: întotdeauna
porturi:
- 8080:80
mediu inconjurator:
- PMA_ARBITRARY=1
link-uri:
- mysql
retele:
- laravel
npm:
imagine: node:18-alpine3.14
container_name: npm
volume:
- ./src:/var/www/html
work_dir: /var/www/html
punct de intrare: [ 'npm', '--no-bin-links']
retele:
- laravel
compozitor:
imagine: compozitor:latest
container_name: compozitor
volume:
- ./src:/var/www/html
work_dir: /var/www/html
depinde de:
- php
retele:
- laravel
Dockerfile
DE LA php:8.1.0-fpm
RUN docker-php-ext-install pdo pdo_mysql
implicit.conf
Server{
asculta 80;
index index.php index.html;
nume_server gazdă locală;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
Locație / {
try_files $uri $uri/ /index.php?$query_string;
}
locație ~ \.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;
}
}
fișierul meu php este în ./src/public/