Php 无法为Laravel Sail在.env上设置应用程序端口

Php 无法为Laravel Sail在.env上设置应用程序端口,php,laravel,docker,laravel-8,laravel-sail,Php,Laravel,Docker,Laravel 8,Laravel Sail,我在Windows 10中遇到以下问题(在Ubuntu中正常工作): 我和赛欧在拉威尔8号工作 当我在.env上创建APP\u端口变量时 APP_NAME=Laravel APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost APP_PORT=3000 …并使用向上航行启动web我收到以下错误: services.laravel.test.ports contains an invalid type, it should

我在Windows 10中遇到以下问题(在Ubuntu中正常工作):

我和赛欧在拉威尔8号工作 当我在
.env
上创建
APP\u端口
变量时

APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_PORT=3000
…并使用
向上航行
启动web我收到以下错误:

services.laravel.test.ports contains an invalid type, it should be a number, or an object
这就是docker compose.yml的外观

    version: '3'
    services:
        laravel.test:
            build:
                context: ./docker/8.0
                dockerfile: Dockerfile
                args:
                    WWWGROUP: '${WWWGROUP}'
            image: sail-8.0/app
            ports:
                - '${APP_PORT:-80}:80'
...
我知道我可以把
ports:-'3000:80'
放进去,但是因为我在团队中工作,
php artisan sail:install
命令将覆盖
docker compose.yml
文件,我不想更改
docker compose.yml
文件

提前谢谢。

快进

sudo APP_PORT=3001 ./vendor/bin/sail up

我唯一能做的就是工作。仍然不知道为什么其他配置不允许它进入。env

Windows 10中的Laravel Sail(Docker)解决方案是将
.env
下线从CRLF更改为LF。我发现它是因为我试图从另一个问题解决这个警告,我想

./.env: line X: $'\r': command not found
/usr/bin/env: bash: No such file or directory
在我解决了EOL冲突后,
sail-up
命令能够读取所有环境变量。我还在以下文件中将EOL更改为LR:

.env
artisan
docker/7.4/start-container
docker/8.0/start-container
vendor/laravel/sail/runtimes/8.0/start-container
vendor/laravel/sail/runtimes/7.4/start-container

很清楚为什么Ubuntu上没有出现这个问题。

${APP_PORT:-80}:80
这里
${APP_PORT:-80}
这是容器端口,它将是8000,因为
php artisan serve
在该端口上运行,
80
是您的本地机器端口。我想更改您的本地机器端口吗?谢谢您的评论。实际上,我的拉威尔帆是在80号端口上使用的,我知道默认情况下artisan是在8000号端口上使用的,但80号端口是“Sail up”给我的。我想更改我的主机端口(在左边)我不关心容器端口使用
-${APP_port:-80}:${APP_CLIENT_port}
并在
.env
中创建一个新的类似
APP_CLIENT_port=3000
@KamleshPaul你把“CLIENT”称为什么?对主机还是对客户?客户机意味着哪个端口将占用您的端口
docker(主机)
您的机器是客户机请看我的答案,也许我可以帮助您