DOCKER 部署 webman项目

# 设置基础镜像
FROM php:8.2-fpm

# 安装必要的软件包和依赖项
RUN apt-get update && apt-get install -y \
    nginx \
    libzip-dev \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    && rm -rf /var/lib/apt/lists/*

# 安装 PHP 扩展
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install zip pdo_mysql
# 安装 pcntl 扩展
RUN docker-php-ext-install pcntl


# 安装 Redis 扩展
RUN pecl install redis-5.3.7 \
    && docker-php-ext-enable redis

# 安装 Xdebug 扩展
RUN pecl install xdebug-3.2.1 \
    && docker-php-ext-enable xdebug

# 复制 Nginx 配置文件到容器
COPY ./dockerConfig/nginx/default.conf /etc/nginx/conf.d/default.conf

# 复制启动脚本到容器
COPY start.sh /start.sh

# 赋予启动脚本可执行权限
RUN chmod +x /start.sh

# 复制项目代码到容器
COPY . /var/www/html

# 设置文件和目录的权限
RUN chown -R www-data:www-data /var/www/html

# 启动 Nginx 和 PHP-FPM
CMD ["/start.sh"]

目录接口如下

 关于nginx 的配置可以删去,

sh文件

#!/bin/bash
set -e

# 启动 Nginx
service nginx start

# 执行 PHP 命令
php start.php start

nginx配置文件

upstream webman {
    server 127.0.0.1:8787;
    keepalive 10240;
}

server {
  server_name test.com
  listen 80;
  access_log off;
  root /var/www/html/public;

  location ^~ / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      if (!-f $request_filename){
          proxy_pass http://webman;
      }
  }
}

制作镜像

 docker build -t new_app  .


运行

docker run  -p 8080:8787 new_app

 测试

 如有不清楚,请留言,看到必回

猜你喜欢

转载自blog.csdn.net/wqzbxh/article/details/132530055