PHP/MySQL/Nginx/Redis アプリケーション Docker

DDD
リリース: 2024-10-09 10:13:30
オリジナル
575 人が閲覧しました

PHP/MySQL/Nginx/Redis Application Docker

* - 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
ログイン後にコピー

- 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:
ログイン後にコピー

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;
        }
    }
}
ログイン後にコピー

以上がPHP/MySQL/Nginx/Redis アプリケーション Dockerの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート