*- Create de Dockerfile *
FROM php:8.3-fpm RUN apt-get update && \ apt-get install -y git unzip iputils-ping && \ docker-php-ext-install pdo pdo_mysql COPY --from=composer:latest /usr/bin/composer /usr/bin/composer RUN composer global require laravel/installer ENV PATH="$PATH:$HOME/.composer/vendor/bin" WORKDIR /var/www
- Create de docker-compose.yml
version: '3.8' services: app: image: php:8.3-fpm container_name: ap-name-app working_dir: /var/www volumes: - ./:/var/www - ./docker/php/php.ini:/usr/local/etc/php/php.ini networks: - laravel depends_on: - mysql - redis nginx: image: nginx:alpine container_name: app-name-nginx ports: - "8080:80" volumes: - ./:/var/www - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf networks: - laravel depends_on: - app mysql: image: mysql:8.0 container_name: app-name-mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: database MYSQL_USER: user MYSQL_PASSWORD: password ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql networks: - laravel redis: image: redis:alpine container_name: app-name-redis ports: - "6380:6379" networks: - laravel networks: laravel: driver: bridge volumes: mysql-data:
create nginx.conf
worker_processes auto; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server_tokens off; server { listen 80; server_name localhost; root /var/www/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include fastcgi_params; fastcgi_pass app:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi.conf; } location ~ /\.ht { deny all; } } }
The above is the detailed content of PHP/MySQL/Nginx/Redis Application Docker. For more information, please follow other related articles on the PHP Chinese website!