问题标签 [laravel-envoy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
252 浏览

php - 以 root 身份运行 Laravel Envoy

如何以 root 身份运行 Envoy?我有一个root禁用访问的公司服务器,但我可以sudo -s访问它。

例如,当git pull通过 Envoy 运行时,我得到:

[jenkins]:错误:无法打开 .git/FETCH_HEAD:权限被拒绝

我试过添加sudo -s它:

但这只会导致:

[jenkins]:sudo:没有 tty 存在,也没有指定 askpass 程序

有没有办法以 root 身份运行 Envoy?

0 投票
2 回答
608 浏览

laravel - Laravel Sail:输入设备不是 TTY

我正在使用 Laravel Envoy 和 GitLab CI/CD 来部署我的应用程序,当我尝试使用 Sail 运行 npm install 时,我收到以下错误:

这是我的特使任务:

0 投票
2 回答
205 浏览

laravel - 使用 Laravel Envoy 部署到具有不同项目根目录的多个服务器

使用 Laravel Envoy 部署到多个服务器时,如何指定每个服务器的项目根目录?文档中提供的示例假定项目根目录是两个服务器的相同路径。

截屏

假设web-1项目根为/var/html/www并且web-2项目根为/var/foo/bar. 如何在运行时访问不同服务器的项目根目录?

0 投票
1 回答
125 浏览

laravel - Laravel Envoy 到 SSH 进入堡垒服务器,然后,SSH 进入单独的私有 Web 服务器,stdout 被拆分为新行

我们的基础设施/挑战很有趣,我在网上或其他 SO 问题上找不到任何太相关的东西。

我们的build服务器与我们的私有网络服务器位于不同的 VPC 中。所以build>web server是不可能的。我在本地使用两个 VirtualBox VM 进行概念验证,那里没有问题。使用两个虚拟机在本地一切正常。

我们的部署将是build> bastion> webserver

我正在研究一些将由 GitLab 的 CI 触发的 Envoy 脚本,其中:

  • SSH 进入我们的build服务器
  • envoy run deploy:code --arg1=a --arg2=b --arg3=c
  • envoy 然后 SSH 进入我们的堡垒服务器
  • 运行另一个脚本(deploy.sh现在最终是 Envoy)将代码部署到我们的私有 Web 服务器

虚拟机1 Envoy.blade.php

虚拟机2 deploy.sh

本地主机命令:

输出:

谁能建议我不能将输出拆分为多行的方法,而只是hello!在欢迎消息/MOTD 之后回显,和/或不将输出拆分为多行?

0 投票
0 回答
31 浏览

gitlab - 如何使用工件压缩整个 laravel 发布的文件夹?

我正在努力弄清楚这一点。我正在尝试在部署过程结束后从整个项目创建一个工件,它会删除发布文件夹,但我错过了一些关于此的内容,我的意思是,我想压缩所有发布的文件夹。这是我的 .gitlab-ci.yml

'envoy run deploy' 脚本运行所有 laravel 项目设置任务,成功后我想压缩发布的文件夹。而是分隔路径,我怎样才能获得它的根路径?

0 投票
1 回答
95 浏览

laravel - 使用 Laravel envoy 部署时 app.js 无法获取环境变量

我想用 envoy 部署我的应用程序,以确保停机时间为零。经过一些研究,我发现这个脚本完全符合我的要求。 https://github.com/papertank/envoy-deploy

基本上对于后端一切都运作良好。我能够克隆项目,执行所有命令并将其指向最新项目。之后,我为我的 vue 组件添加了一个新的 npm 任务。这是任务

为此,我将我的 laravel mix 相关依赖项从 devDependencies 移动到依赖项。

运行任务时,第一个问题发生了,我的 webpack.mix.js 似乎无法读取变量。调用 process.env.APP_URL 时,它返回未定义。这是语法。

这是我的 .env 样子

在我检查了 laravel mix 问题后,他们建议使用

加载环境变量。

所以我改变 webpack.mix.js 成为

好的,它工作了,现在我可以通过 process.env 检索所有变量。任务完成。然后当我导航到我的项目时,发生了第二个问题。

我的 app.js 无法获取 process.env,它在我 console.log(process.env) 时返回 {}

我可以确认 .env 在那里,否则在运行 npm run prod 时会抛出错误只是不确定为什么它无法在 app.js 中检索 env 变量

我知道这可能不是在生产中编译资产的最佳实践。但这对我来说是必要的,因为我的 vue 组件从 .env 文件共享相同的环境变量,所以我需要在服务器中编译资产以确保它使用生产 .env 文件。

有谁知道如何解决这个问题?

0 投票
1 回答
193 浏览

jwt - Envoy 验证 Jwt 失败

我有一个 Laravel(Lumen) 登录 API,它使用 HS256 生成 JWT。然后我将我的不记名令牌发送到 Envoy Gateway 并从 Envoy 获取

JWT 验证失败

在官方 JWT 解码站点上,我可以成功解码并验证我的不记名令牌。在这里我生成我的 JWT:

这是我的特使配置:

0 投票
5 回答
131 浏览

php - 在 apache 服务器重新启动之前,符号链接不会刷新

基本上我已按照此链接的步骤操作:https ://docs.gitlab.com/ee/ci/examples/laravel_with_gitlab_and_envoy/

我使用的是 apache 服务器而不是 NGINX,这是唯一的区别。

所以有一个特使文件将在下面执行:

  • 克隆存储库
  • 运行作曲家
  • 更新符号链接

envoy 文件的代码与: https ://docs.gitlab.com/ee/ci/examples/laravel_with_gitlab_and_envoy/#full-script相同,但 git url 更改和根目录更改。

所以设置是这样的:example.com(虚拟网址)指向我的应用程序目录,即 /var/www/html/deployer-home/current/public

current是一个符号链接,它将指向 /var/www/html/deployer-home/releases/1,如果我将上传新版本,符号链接将更改为/var/www/html/deployer-home/releases/2

如果我会ls -l在服务器中这样做,那么符号链接会显示/var/www/html/deployer-home/releases/2example.com仍然指向/var/www/html/deployer-home/releases/1

我已经尝试过,service apache2 restart但它的域指向仍然没有得到更新。reboot只有当我在服务器中执行时它才会更新。

那么如何解决这个问题呢?我不想为每个版本重新启动服务器。