标签: laravel-sail

为什么“sail up”命令没有构建我的 Laravel docker 容器?

我正在尝试 Laravel Sail,因为我已经成功使用 Laradock 几年了,并希望简化我的开发环境设置。我使用的是 Windows 10 64,使用 WSL 2 安装的 Docker Desktop 3.0,我的 Laravel 应用程序运行的是 Laravel 8.20.1。

在我的 Laravel 项目中,我遵循了Laravel Sail 设置指南:我运行了composer require laravel/sail --devphp artisan sail:install,并且docker-compose.yml在我的根目录中看到了。

但是当我运行时,./vendor/bin/sail up我收到此错误:

./vendor/bin/sail: line 1: XSym: command not found
./vendor/bin/sail: line 2: 0024: command not found
./vendor/bin/sail: line 3: a81960381c7144e16cd1e768af147de3: command not found
./vendor/bin/sail: line 4: ../laravel/sail/bin/sail: No such file or directory
Run Code Online (Sandbox Code Playgroud)

更新:我通过 Qumber 的帮助修复了上述问题:删除 /vendor/ 并重新安装。但现在我收到这个错误:

在 GitBash 中,我得到了这样的回应:

Unsupported …

laravel laravel-sail

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

Laravel 帆:以 root 身份登录或创建一个 root 用户

我正在使用sail 并尝试以root 身份使用shell,这是不可能的。切换到 root 用户要求输入密码,我不知道。

我尝试更改 dockerfile:

ARG WWWROOTGROUP
RUN groupadd --force -g $WWWROOTGROUP sailRoot
RUN useradd -ms /bin/bash --no-user-group -g $WWWROOTGROUP -u 1337 sailRoot

RUN usermod -aG sudo sail
RUN usermod -aG sudo sailRoot
Run Code Online (Sandbox Code Playgroud)

我试图添加一个新用户并给他和标准的sail 用户root 权限,但它不起作用。容器内没有sailRoot 用户。当然,我用那个 dockerfile 重建容器。据我所知,更改后的 dockerfile 已正确执行。

有人知道如何使用sail将用户更改为root吗?

我想要做的是将 imagemagick 安装到容器中。我已经在 dockerfile 中添加了“apt-get install imagemagick imagemagick-doc”,但它没有安装在容器内。如果你知道怎么做,我真的很感激!

谢谢。

laravel docker laravel-sail

3
推荐指数
1
解决办法
1099
查看次数

Laravel Sail 数据库和用户未创建

我刚刚用 laravel 风帆建立了一个 laravel 项目,由于某种原因,在构建过程中它没有创建给定的数据库和用户。我很困惑为什么,因为我觉得我已经配置好了一切。

执行时,./vendor/bin/sail artisan migrate我收到以下错误,表明我的 .env 中给出的用户不存在或凭据错误:

 Illuminate\Database\QueryException 

  SQLSTATE[HY000] [1045] Access denied for user 'Laravel'@'192.168.0.5' (using password: YES) 
(SQL: select * from information_schema.tables where table_schema = shop and table_name = migrations and table_type = 'BASE TABLE')
Run Code Online (Sandbox Code Playgroud)

以 root 用户身份检查我的数据库表明它确实没有Laravel配置用户:

mysql> SELECT user, host FROM mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| …
Run Code Online (Sandbox Code Playgroud)

php laravel docker docker-compose laravel-sail

3
推荐指数
1
解决办法
1334
查看次数

Laravel Sail 安装 puppeteer 铬

我已经设置了一个 Laravel Sail 环境,我正在尝试使用 puppeteer 将网页保存为 pdf。

我目前正在使用这个包通过 laravel 运行 puppeteer - https://packagist.org/packages/spatie/browsershot

要求部分指定您需要通过 npm 下载 puppeteer。

Laravel Sail 有 npm 设置,所以我已经安装了 puppeteer 包,但是当我尝试将网页保存为屏幕截图时,我收到以下错误

The command "PATH=$PATH:/usr/local/bin NODE_PATH=`npm root -g` node '/var/www/html/vendor/spatie/browsershot/src/../bin/browser.js' '{"url":"https:\/\/google.com","action":"screenshot","options":{"type":"png","path":"\/var\/www\/html\/storage\/app\/public\/screenshot.png","args":[],"viewport":{"width":800,"height":600}}}'" failed. Exit Code: 1(General error) Working directory: /var/www/html/public Output: ================ Error Output: ================ Error: Could not find expected browser (chrome) locally. Run `npm install` to download the correct Chromium revision (856583). at ChromeLauncher.launch (/var/www/html/node_modules/puppeteer/lib/cjs/puppeteer/node/Launcher.js:80:27) at async callChrome (/var/www/html/vendor/spatie/browsershot/bin/browser.js:69:23)
Run Code Online (Sandbox Code Playgroud)

它基本上是说它找不到我的本地版本的 Chromium,我不知道如何解决这个问题,如果它不是通过 docker 运行的,我可以在本地安装它并指向它,但我不认为这是使用 docker 时的最佳解决方案。

docker puppeteer laravel-sail

3
推荐指数
1
解决办法
572
查看次数

Laravel Sail + Dusk + Selenium:连接被拒绝

我有一个带有 Sail 的 Laravel,我想用 Laravel Dusk 进行自动化测试。我按照Dusk DocumentationSail + Dusk Installation中的所有说明进行操作,但是当我运行默认测试时,我收到以下错误消息:

Tests\Browser\ExampleTest::testBasicExample
Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","goog:chromeOptions":{"args":["--disable-gpu","--headless","--no-sandbox","--window-size=1920,1080"]},"acceptInsecureCerts":true}]},"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"args":["--disable-gpu","--headless","--no-sandbox","--window-size=1920,1080"]},"acceptInsecureCerts":true}}

Failed to connect to localhost port 4444: Connection refused

/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:333
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:136
/var/www/html/tests/DuskTestCase.php:69
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:218
/var/www/html/vendor/laravel/framework/src/Illuminate/Support/helpers.php:234
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:219
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:97
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:65
/var/www/html/tests/Browser/ExampleTest.php:21
Run Code Online (Sandbox Code Playgroud)

但如果在 Insomnia 中执行请求,它运行不会出现任何问题:

失眠请求

这是我的 docker-compose:

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

selenium laravel docker laravel-dusk laravel-sail

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

带有 Laravel Sail 和版本控制的 Laravel 8 开发项目

我正在学习 Laravel 8,我想使用 Laravel Sail 设置一个快速开发环境。

由于我们通常不会提交到 Git 中的供应商目录,我们如何从一个新的 Git 克隆运行 Sail?没有它我们就不能使用“composer install”。这是否意味着我们应该提交 vendor/bin 和 vendor/composer 文件夹?有哪些常见的做法?

我们是否应该将 /vendor/bin 提交到 git 以获得开箱即用的新开发环境?

git windows-subsystem-for-linux laravel-8 laravel-sail

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

刚刚安装了 Laravel Sail。如何连接数据库?

自 6 月起,我尝试在数据库中使用 TablePlus(或 PhpStorm)连接并创建架构。请理解我应该做什么?我将逐步描述我做了什么。

  1. $ laravel new app。我的新项目有 /app/ 文件夹。
  2. cd app/进入该文件夹。
  3. composer require laravel/sail --dev接收 Laravel Sail。
  4. php artisan sail:install。终端询问我想安装哪些服务?。我编写mysql并按 Enter 键。
  5. gedit .env打开 .env 文件以查看连接设置。
APP_ENV=local
APP_KEY=base64:fXZ06W8BPoRShk8cYlHgS0u/+IBIZTSOM20gFRON6d4=
APP_DEBUG=true
APP_URL=http://app.test

LOG_CHANNEL=stack
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=app
DB_USERNAME=sail
DB_PASSWORD=password

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=memcached

REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
Run Code Online (Sandbox Code Playgroud)
  1. gedit docker-compose.yml在这里查看这些设置。
# …
Run Code Online (Sandbox Code Playgroud)

mysql table-plus laravel-sail

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

Laravel + Vite + Sail 通过 HTTPS。可能的?

经过几个小时的尝试后,我想我太困惑了,无法理解出了什么问题......标题完美地解释了我正在努力实现的目标。\n我的docker-compose.yml

\n
version: \'3\'\nservices:\n    mysite.test:\n        build:\n            context: ./docker/8.1\n            dockerfile: Dockerfile\n            args:\n                WWWGROUP: \'${WWWGROUP}\'\n        image: sail-8.1/app\n        extra_hosts:\n            - \'host.docker.internal:host-gateway\'\n        ports:\n            - \'${APP_PORT:-80}:80\'\n            - \'443:443\' //added for test but not working...\n            - \'${HMR_PORT:-8080}:8080\'\n            - \'5173:5173\' //Vite port\n        environment:\n            WWWUSER: \'${WWWUSER}\'\n            LARAVEL_SAIL: 1\n            XDEBUG_MODE: \'${SAIL_XDEBUG_MODE:-off}\'\n            XDEBUG_CONFIG: \'${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}\'\n        volumes:\n            - \'.:/var/www/html\'\n        networks:\n            - sail\n        depends_on:\n            - mysql\n            - minio\n    mysql:\n        image: \'mysql/mysql-server:8.0\'\n        ports:\n            - \'${FORWARD_DB_PORT:-3306}:3306\'\n        environment:\n            MYSQL_ROOT_PASSWORD: \'${DB_PASSWORD}\'\n            MYSQL_ROOT_HOST: "%"\n            MYSQL_DATABASE: \'${DB_DATABASE}\'\n            MYSQL_USER: \'${DB_USERNAME}\'\n            MYSQL_PASSWORD: \'${DB_PASSWORD}\'\n            MYSQL_ALLOW_EMPTY_PASSWORD: 1\n        volumes:\n            - \'sail-mysql:/var/lib/mysql\'\n            - …
Run Code Online (Sandbox Code Playgroud)

https laravel laravel-sail vite

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

Laravel sail up 抛出权限被拒绝错误

我使用的是Ubuntu 22.04以及最新版本的Docker Desktop (4.11.1)Laravel Framework 9.26.1

我尝试按照https://laravel.com/docs/9.x#getting-started-on-linux中列出的步骤创建一个新的 Laravel 项目。

当我运行时,./vendor/bin/sail up终端没有显示任何错误。但是当我尝试访问 http://localhost/ Laravel 时显示此UnexpectedValueException

The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log: The stream or file "/var/www/html/storage/logs/laravel.log" …
Run Code Online (Sandbox Code Playgroud)

php laravel docker-compose laravel-sail

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

来自守护程序的 Docker 错误响应:端口不可用 - Mac

我正在尝试通过 Mac 让 Docker/LaravelSail 运行。启动 Docker 时出现错误

Attaching to flow-laravel.test-1, flow-mysql-1 Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:80 -> 0.0.0.0:0: listen tcp 0.0.0.0:80: bind: address already in use

我知道 80 端口正在其他地方使用,但我很难解决这个问题。当我运行时,docker ps我得到正在运行的 mySql 容器 ID。

在 docker 仪表板上我可以看到以下内容码头工人仪表板

我尝试手动停止和启动 laravel-test1 容器,但没有成功。

我的问题是,我该如何解决这个问题?

docker laravel-sail

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