无法在 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"]
我正在尝试创建 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"]