无法在 .env 上为 Laravel Sail 设置 APP_PORT

Unable to set the APP_PORT on .env for Laravel Sail

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

我在 Laravel 8 与 Sail 一起工作 当我在 .env...

上创建 APP_PORT 变量时
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_PORT=3000

...并使用 sail up 启动网络 我收到此错误:

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

Laravel Sail (Docker) 在 Windows 10 上的解决方案是将 .env EOL 从 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 上没有出现这个问题。

无需更改 docker-compose.yml 文件,只需在 .env 文件中添加一行即可:

  1. 在您的 .env 文件中添加一行

    APP_PORT=3001 //or instead of 3001 any other port number of your choice

  2. 重新启动 Sail

    sail up

  3. 现在您应该可以使用您在步骤 1 中设置的端口号访问您的应用程序了

    http://localhost:3001