symfony Docker-用于部署的PHP应用程序映像无法在本地工作

tjrkku2a  于 2023-10-24  发布在  Docker
关注(0)|答案(1)|浏览(127)

我试图测试我的php服务器运行应用程序之前部署在AWS上(第一次)不适合我本地与我的docker配置。
我用途:

docker build -f docker-configs/php/Dockerfile -t php-service .

docker run -p 9000:9000  php-service

localhost:9000没有响应

产品展示:
[2023 - 08 - 23 08:37:53]注意:fpm正在运行,pid 1
[2023 - 08 - 23 08:37:53]注意:准备好处理连接
但无法连接。
我的Dockerfile

FROM php:8.2-fpm

RUN apt-get update && apt-get install -y \
    git \
    unzip \
    libicu-dev \
    libpq-dev \
    wget \
    && apt-get install -y \
    librabbitmq-dev \
    libssh-dev \
    sqlite3 \
    libsqlite3-dev \
    && docker-php-ext-install \
    bcmath \
    sockets \
    pdo pdo_mysql pdo_sqlite \
    && pecl install amqp \
    && docker-php-ext-enable amqp

# Installing Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && composer --version

RUN apt-get -y install cron default-mysql-client

WORKDIR /app

# Copy application files into the container
COPY . /app

# Expose port 9000 for the PHP-FPM server
EXPOSE 9000

# The startup command to run PHP-FPM
CMD ["php-fpm"]

此外,我发现- PHP-FPM不直接处理HTTP请求;它需要一个像Nginx或Apache这样的Web服务器来将HTTP请求转换为PHP-FPM可以处理的FastCGI请求。
所以我想我需要的图像,我可以访问HTTP请求?
我的docker-compose.yaml文件

version: '3.8'
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - "./docker-configs/nginx.conf:/etc/nginx/conf.d/default.conf"
      - ".:/app:cached"
  php:
    build:
      context: ./docker-configs/php
    volumes:
      - "./docker-configs/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
      - ".:/app:cached"
    environment:
      PHP_IDE_CONFIG: "serverName=Docker"

  database:
    image: nouchka/sqlite3:latest
    stdin_open: true
    tty: true
    volumes:
      - ./sqlite-data:/var/lib/sqlite

有人能帮帮忙吗?谢谢

bf1o4zei

bf1o4zei1#

是的,你是对的。FPM 图像中没有Web服务器,你需要一个外部Web服务器(nginxApache)来“接受”来自外部的请求并将其“转发”到应用程序。

相关问题