PHP/MySQL/Nginx/Redis 应用 Docker

DDD
发布: 2024-10-09 10:13:30
原创
578 人浏览过

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板