无法在 .env 上为 Laravel Sail 设置 APP_PORT
Posted
技术标签:
【中文标题】无法在 .env 上为 Laravel Sail 设置 APP_PORT【英文标题】:Unable to set the APP_PORT on .env for Laravel Sail 【发布时间】:2021-07-07 05:49:58 【问题描述】:我在 Windows 10 中遇到以下问题(在 Ubuntu 中可以正常工作):
我正在使用 Sail 在 Laravel 8 中工作
当我在.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
文件。
提前致谢。
【问题讨论】:
$APP_PORT:-80:80
这里 $APP_PORT:-80
这是容器端口,它将是 8000,因为 php artisan serve
在该端口上运行,80
是你的本地机器端口我想你想改变你的本地机器端口?
感谢您的评论。实际上,我的 Laravel Sail 在端口 80 上提供服务,我知道默认情况下工匠服务是 8000,但 80 端口是“起航”给我的端口。我想更改我的主机端口(在左侧)我不在乎容器端口
使用- '$APP_PORT:-80:$APP_CLIENT_PORT'
并在.env
中创建一个新的就像APP_CLIENT_PORT=3000
一样
client 表示将消耗你的端口docker(HOST)
你的机器是客户端
嗨,我有相同的配置并且没有更改 docker.yml 文件,只是将 APP_PORT 添加到 .env 并运行sails up 命令,现在我看到应用程序在 localhost:8000 上运行时访问通过浏览器。
【参考方案1】:
Windows 10 上 Laravel Sail (Docker) 的解决方案是将 .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 上不存在。
【讨论】:
【参考方案2】:无需更改 docker-compose.yml 文件,只需在 .env 文件中添加一行即可:
在您的 .env 文件中添加一行
APP_PORT=3001 //or instead of 3001 any other port number of your choice
重启帆
sail up
现在您应该可以使用您在步骤 1 中设置的端口号访问您的应用程序
http://localhost:3001
【讨论】:
【参考方案3】:扬帆出海
sudo APP_PORT=3001 ./vendor/bin/sail up
这就是我所做的唯一方法就是工作。仍然不知道为什么其他配置不允许在.env中使用它
【讨论】:
看看我的回答也许我会帮助你以上是关于无法在 .env 上为 Laravel Sail 设置 APP_PORT的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Sail 在 Ubuntu 20.04 LTS 中无法正常工作
Windows 10 (WSL2) 上不支持的操作系统 Laravel 8 with Sail