【问题标题】:Impossible to start Symfony 5 server on Docker container (symfony serve -d)无法在 Docker 容器上启动 Symfony 5 服务器(symfony serve -d)
【发布时间】:2021-12-23 00:25:12
【问题描述】:

我试图创建 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 链接不显示任何内容。 然后我在容器的终端上输入symfony serve -d 重新启动symfony 服务器,在localhost:8080 上我可以看到我的应用程序正在运行。

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

docker container terminal

我想要的是直接启动我的 Symfony 服务器,而不需要重新访问 symfony serve -d。 我该怎么做?

【问题讨论】:

    标签: symfony docker-compose server dockerfile localhost


    【解决方案1】:

    尝试使用 CMD 而不是 RUN

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

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

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多