我在 Windows 10 中遇到以下问题(在 Ubuntu 中工作正常):
我正在 Laravel 8 中使用 Sail 当我APP_PORT在.env...上创建变量时
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_PORT=3000
Run Code Online (Sandbox Code Playgroud)
...并启动网络,sail up我收到此错误:
services.laravel.test.ports contains an invalid type, it should be a number, or an object
Run Code Online (Sandbox Code Playgroud)
这就是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'
...
Run Code Online (Sandbox Code Playgroud)
我知道我可以直接输入ports: - '3000:80',但由于我在团队中工作并且该php artisan sail:install命令将覆盖该docker-compose.yml文件,因此我不想更改该docker-compose.yml文件。
提前致谢。
Laravel Sail,有一个很好的前提来创建一个零依赖环境,有 php、redis、mariadb 等...
但它的安装需要composer,composer需要安装php,
这是一个悖论吗?
安装了 docker 有什么方法可以实现零依赖?
我最近决定尝试 Laravel Sail,而不是我通常使用 Vagrant/Homestead 的设置。一切似乎都精美且易于布局,但我似乎无法找到在本地环境中更改域名的解决方法。
我尝试使用 localhost:89 在端口 89 上运行该应用程序,APP_PORT=89 sail up但在启动之前尝试记住哪个端口是哪个项目似乎很麻烦。
我正在寻找一种方法来更改默认端口,这样我就不必每次要航行时都指定要服务的端口。laravel.test然后我可以使用类似for 的别名localhost:89,这样我就不必再记住端口了,我只需输入项目名称即可。
我尝试更改 etc/hosts 文件,但发现它实际上对不同的端口没有帮助
例如,我本质上是尝试通过在浏览器上输入“laravel.test”来访问我的项目。
也欢迎任何其他建议来实现这一目标。谢谢
**更新** 经过所有这些搜索,我实际上决定更改我的工作流程,一次只运行一个应用程序,所以现在我只使用本地主机,我的 CPU 和 RAM 喜欢它,所以如果你在这里从 homestead 迁移到 docker ,问问自己是否真的需要同时运行所有这些应用程序。如果答案是肯定的,研究一下,如果不只是使用localhost,那没有什么问题
我目前有自己的 Laravel 应用程序在 Docker 上运行,在 Windows 11 上使用 Laravel sail,在 WSL2 上使用 Ubuntu。这工作正常并且符合预期。我已将我的工作推送到 Git 存储库,但如何将其拉到新系统上?安装时 Laravel sail 附带的供应商文件不会发送到存储库,因此在安装 Composer 的供应商文件之前,sail 将毫无用处。
我是 Docker 新手,这是否意味着我必须在 Linux (WSL2) 上安装 Composer 和 PHP,然后安装供应商文件?有没有更简单的方法,或者这是传统的方法?
感谢您的任何帮助。
我遇到了问题laravel sail,碰巧我刚刚克隆了存储库,它没有变化,docker-compose.yml完全完好无损,但是,执行后./vendor/bin/sail up我已经启动了容器,当我尝试进行迁移时,会抛出以下错误
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo 失败: 名称解析暂时失败 (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
Docker-compose.yml
# For more information: https://laravel.com/docs/sail
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
# - pgsql
- redis
# - selenium
# selenium:
# image: 'selenium/standalone-chrome'
# volumes:
# - '/dev/shm:/dev/shm'
# …Run Code Online (Sandbox Code Playgroud) 我想创建一个新的 Laravel 8 项目,并且我按照 Windows 上的 docker 和 Sail 的文档进行操作:https ://laravel.com/docs/8.x#getting-started-on-windows
安装完所有内容后,我尝试执行命令来创建项目:
curl -s https://laravel.build/example-app | bash
Run Code Online (Sandbox Code Playgroud)
它询问我的密码。我输入它并按回车键,但什么也没发生。当我按 CTRL+C 时,我可以看到它尝试将我的密码作为命令执行。
您好,我尝试使用 Laravel Sail docker 环境安装新的 Laravel 项目。首先它向我显示“Docker 未运行”错误。然后我发现,我需要以无根身份启动 docker。我解决了这个问题,阅读了这个网址:[https://docs.docker.com/engine/install/linux-postinstall/]。
之后,我使用 Laravel Sail 成功安装了 Laravel。然后我跑了
./vendor/bin/sail up -d
Run Code Online (Sandbox Code Playgroud)
我能够在浏览器中查看 Laravel 项目。但是当我运行任何其他 artisan 命令(例如./vendor/bin/sail artisan route:list或 sail 命令)时sail shell,所有 docker 容器都被强制自动关闭。它向我显示了这个错误。
风帆没有运行。
您可以使用以下命令进行航行:“./sail up”或“./sail up -d”
有什么建议么?我在 Ubuntu 20.04 LTS 版本上遇到这个问题。
我有一个用 Composer 创建的 Laravel 8 项目。然后我添加了 laravel sail by composer require laravel/sail,然后执行了 command php artisan sail:install。命令执行后sail up,仅mysql创建了容器,一切正常。但现在我想添加redis到我的 docker 容器中。我怎样才能做到这一点?我对 Docker 不了解,但 laravel sail 使使用 Docker 变得非常容易。我想redis在 laravel sail 的帮助下添加。有什么办法可以做到这一点吗?
我刚刚按照他们的文档中的说明创建了一个新的 Laravel 8 项目。使用Laravel Sail我在我的机器上本地运行该站点,使用sail up. 我设置了一个条目/etc/hosts,因此URL我去的是http://local.dev.domain.com(取代domain.com了我自己的实际域名,并指向localhost了在/etc/hosts文件中)......所有的伟大工程。
但是,该站点需要使用 Facebook 登录,而 Facebook 仅在推荐人上需要 https 网址。我已经尝试了所有可以在网上找到的有关mkcert使用 docker设置 SSL 证书的方法,但是使用手动创建的证书(通过)设置 nginx或尝试使用 letencrypt 都因各种原因而失败(端口冲突,letsencrypting 希望域成为一个真正的(和失败,如果我做创建一个子域极致挑战),我复制证书要等/etc/ssl/certs泊坞窗图像和运行中update-ca-certificates,尝试设置应用程序端口443在我的.env文件,以及打开两个端口80,并443在docker-compose.yml文件...但一切都以浏览器拒绝请求而告终https://local.dev.domain.com
我花了几个小时试图让它工作,但似乎没有人使用带有 SSL 的 Laravel Sail docker 镜像。
任何指针?
[编辑以获取更多信息] 正如评论中所指出的,您需要将别名设置为仅使用sail ...,但我已经这样做了:
我也试过不使用 bash 别名vendor/bin/sail share,但无济于事:
sail shell并且sail artisan命令已停止工作。
但sail up仍在sail down工作。
版本详情
php: 8.0.5
laravel: 8.41.0
sail: 1.5.1
docker: 3.3.3
操作系统: macOS 11.3.1
我的 docker-compose.yml 文件
# For more information: https://laravel.com/docs/sail
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: …Run Code Online (Sandbox Code Playgroud) laravel-sail ×10
laravel ×9
docker ×7
laravel-8 ×4
php ×1
ssl ×1
ubuntu ×1
ubuntu-20.04 ×1
wsl-2 ×1