无法在 Docker 容器上启动 Symfony 5 服务器 (symfony serve -d)

Impossible to start Symfony 5 server on Docker container (symfony serve -d)

我正在尝试创建 Docker 容器来连接我的 Symfony 5 应用程序。

我先创建一个Dockerfile

FROM php:7.4-fpm-alpine

# Update
RUN apk --no-cache update
RUN apk --no-cache add bash git

# Install Node
RUN apk --no-cache add --update nodejs npm
RUN apk --no-cache add --update python3
RUN apk --no-cache add --update make
RUN apk --no-cache add --update g++

# Install pdo
RUN docker-php-ext-install pdo_mysql

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

# Symfony CLI
RUN curl -sS https://get.symfony.com/cli/installer | bash && mv /root/.symfony/bin/symfony /usr/local/bin/symfony

# WORK DIR
COPY . /var/www/html
WORKDIR /var/www/html

RUN composer update
RUN composer install
RUN npm install

# Start Symfony server on Port 8000
EXPOSE 8000
RUN symfony serve -d

然后我创建了一个 docker-compose.yml 文件(我只是将容器的 8000 端口重定向到我机器上的 8080 端口)。

version: '3.8'

services:
    php-fpm:
        container_name: infolea
        build: ./
        ports:
            - 8080:8000
        volumes:
            - ./:/var/www/html

然后,我构建我的图像 docker-compose build。 然后,我运行我的形象docker-compose up -d

在我的浏览器上,localhost:8080 link 不显示任何内容。 然后我通过在我的容器的终端上键入 symfony serve -d 来重新启动 symfony 服务器,在 localhost:8080 上我可以看到我的应用程序正在运行。

有些东西很糟糕,当我验证我的服务器是否尚未在我的 docker 容器终端上启动时,我得到了这个:

docker container terminal

我想要的是直接启动我的 Symfony 服务器,无需重新点击 symfony serve -d。 我该怎么做?

尝试使用 CMD 而不是 运行

CMD ["/usr/local/bin/symfony", "local:server:start" , "--port=8000", "--no-tls"]

https://docs.docker.com/engine/reference/builder/#cmd