标签: laravel-sail

你如何使用 Laravel 8 帆启用 ssl

我刚刚按照他们的文档中的说明创建了一个新的 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,并443docker-compose.yml文件...但一切都以浏览器拒绝请求而告终https://local.dev.domain.com

我花了几个小时试图让它工作,但似乎没有人使用带有 SSL 的 Laravel Sail docker 镜像。

任何指针?

[编辑以获取更多信息] 正如评论中所指出的,您需要将别名设置为仅使用sail ...,但我已经这样做了:

在此处输入图片说明

我也试过不使用 bash 别名vendor/bin/sail share,但无济于事:

在此处输入图片说明

ssl laravel docker laravel-8 laravel-sail

8
推荐指数
2
解决办法
4397
查看次数

Laravel Sail 重建默认数据库

根据文档:

此外,当 MySQL 容器启动时,它将确保存在名称与 DB_DATABASE 环境变量的值匹配的数据库。

我的.env文件看起来像这样。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试通过 运行迁移时sail artisan migrate,我得到了这个错误: SQLSTATE[HY000] [1049] Unknown database 'test' (SQL: select * from information_schema.tables where table_schema = test and table_name = migrations and table_type = 'BASE TABLE')

我试过的:

  • 一起删除 docker 容器和图像。
  • 运行sail build --no-cache(尝试完全重建一切)
  • 运行时sail shell,我进入 MySQL 并显示所有数据库。我可以在那里看到默认的 Laravel 数据库。

你怎么告诉sail创建正确的DB_DATABASE

我的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: …
Run Code Online (Sandbox Code Playgroud)

mysql laravel docker laravel-sail

8
推荐指数
1
解决办法
6624
查看次数

laravel、sail shell 和 sail artisan 命令停止工作

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 docker docker-compose laravel-8 laravel-sail

8
推荐指数
1
解决办法
4307
查看次数

无法连接到数据库 Laravel Sail

我正在尝试创建一个简单的 laravel 项目,并且正在关注 laracast 以使用 Sail 设置该项目。该项目运行良好,我能够使用 vendor/bin/sail artisan migrate 进行迁移。

laracast的下一步是用tableplus连接数据库。但我无法通过这一步。我在 tableplus 中收到此错误: 在此处输入图片说明

这是我的 .env:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=csv
DB_USERNAME=root
DB_PASSWORD=
Run Code Online (Sandbox Code Playgroud)

我没有更改 docker-compose 文件中的任何设置,在 docker 桌面中我可以看到 mysql 在端口 3306 上运行并且没有设置密码。

知道如何解决此问题并连接到数据库吗?

编辑:发现问题。当我运行时brew services list,看到旧版本的 mysql 仍在运行。停止它,brew services stop mysql现在我可以连接

mysql laravel laravel-8 laravel-sail

7
推荐指数
3
解决办法
4792
查看次数

使用 Laravel Sail 运行 Laravel Dusk 时连接被拒绝

我正在尝试使用与 Laravel Sail 集成的 Laravel Dusk,如下所述: https: //laravel.com/docs/8.x/sail#laravel-dusk

在进行这项工作时,我面临一些问题:

  • 如果使用 .env.dusk 或 .env.dusk.local 文件并使用“sail dusk”运行测试,我会收到连接拒绝错误(更多详细信息如下)

  • 例如,如果使用 .env.testing 设置 ENV 变量并运行“sail dusk --env=testing”,则连接拒绝错误会消失,但应用程序会继续使用默认的 .env 文件,而 dusk 测试则使用 .env 文件。 env.testing,导致很多错误。

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
            - redis
            - selenium
    selenium:
        image: 'selenium/standalone-chrome'
        volumes:
            - '/dev/shm:/dev/shm'
        networks:
            - sail
    mysql: …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-dusk laravel-8 laravel-sail

7
推荐指数
1
解决办法
3348
查看次数

使用 wsl2 的 Windows 10 上的 Docker 操作系统不受支持

我安装了docker并下载了一个ubuntu发行版来与laravel sail一起运行,计划使用swoole php,并将其设置为默认,还将wsl版本设置为2 在此输入图像描述

从 laravel sail docker-compose.yml 中准备好 docker-compose.yml: 在此输入图像描述

但每次我尝试运行 sail up cmd 时,都会出现此错误“不支持的操作系统 [MINGW64_NT-10.0]。Laravel Sail 支持 macOS、Linux 和 Windows (WSL2)。”

在此输入图像描述

任何想法如何解决这一问题 ?

docker laravel-sail

7
推荐指数
2
解决办法
1万
查看次数

如何使用 Laravel Sail 配置 Supervisor 和调度?

我正在使用 Laravel sail。我想使用主管和 cronjob。但我不明白如何用 sail 配置这些东西。

我找不到任何有关如何执行此操作的示例。

cron supervisord laravel laravel-sail

7
推荐指数
1
解决办法
8701
查看次数

如何将 PHP 扩展添加到 Laravel Sail 附带的 docker-compose.yml 配置中?

我创建了一个新的 Laravel 8 项目,它附带了 Laravel Sail,一个预配置的 Docker 环境。它运行良好,直到我需要使用 PHP 扩展。

Laravel Sail 文档似乎没有提及任何有关 PHP 扩展的内容,这是一个重大问题。任何重要的 PHP 站点都必须使用多个 PHP 扩展。如果没有添加 PHP 扩展的能力,Laravel Sail(或任何其他 PHP 环境)或多或少是无用的。

中有 aDockerfile和 a 。我可以将这些文件从我自己的项目代码中复制出来或复制到我自己的项目代码中,然后破解指向这些文件的我的版本。但是,如果我这样做,我将失去 Laravel Sail 人员对这些文件所做的任何未来修复或改进。php.inivendor/laravel/sail/runtimes/8.0/vendordocker-compose.yml

我知道sail artisan sail:publish他们在 Laravel Sail 文档末尾提到的命令(https://laravel.com/docs/8.x/sail#sail-customization)。它似乎只是做了我上面提到的事情:将第三方代码复制到我的项目中,现在突然这个最终用户网站负责维护自己的 Laravel Sail 副本。

当然有一种惯用的方法可以在 Laravel Sail 中添加 PHP 扩展,而无需在我的站点代码中重新实现 Laravel Sail 的分支?

php laravel docker laravel-8 laravel-sail

7
推荐指数
0
解决办法
2846
查看次数

我可以从 laravel 中删除 sail 吗?

最近我被分配了一项任务来升级旧的 Laravel 项目,有一个控制器,需要迁移的文件不超过 20 个,平均有 200 行代码。

为此,我安装了 laravel 最新的 8.1 ,但它附带了很多垃圾,包括 sails。我只需要像laravel-5.4(支持php-8)和mysql(没有帆,邮件和其他东西)。

我可以从中删除帆吗?我在 google 第一页上找不到使用最小 laravel 的好文档,所以我来到这里。

我无意冒犯任何人,但我认为 Laravel 因许多糟糕的抽象而变得令人沮丧。

php laravel laravel-sail

7
推荐指数
1
解决办法
3576
查看次数

Xdebug:连接调试客户端超时

我正在尝试在我的 Ubuntu 20.04.3 LTS 桌面上使用最新版本的 laravel sail 设置 xdebug,


PHP 8.1
Laravel 9

.env 文件包含以下提到的详细信息

SAIL_XDEBUG_MODE=develop,debug
SAIL_XDEBUG_CONFIG="client_host=172.23.0.1"
Run Code Online (Sandbox Code Playgroud)

但当我跑步时sail debug migrate,返回

Xdebug: [Step Debug] Time-out connecting to debugging client, waited: 200 ms. Tried: 172.23.0.1:9003 (through xdebug.client_host/xdebug.client_port)

当我尝试查找 IP 时,每次
docker inspect -f {{range.NetworkSettings.Networks}}{{.Gateway}}{{end}} <container-name> 返回不同的 IP(例如 172.25.0.1)时它都会发生变化

laravel docker-compose laravel-sail

7
推荐指数
1
解决办法
2940
查看次数