是否可以在命令失败时中止错误或调用其他任务?
这不起作用:
@task('migrate', ['on' => 'web'])
cd {{ $currentReleaseDir }};
php artisan migrate || exit 1;
@endtask
Run Code Online (Sandbox Code Playgroud)
它失败了消息(我知道我可以运行--force,这只是让命令失败以进行测试的一种方法):
**************************************
* Application In Production! *
**************************************
Run Code Online (Sandbox Code Playgroud)
但随后它继续运行部署脚本的其余部分.
我正在使用Laravel的Envoy库进行部署.当我到达部署结束时,我需要更改一堆文件的所有权; 为了做到这一点,我需要切换到root用户,因为chown并chmod没有作为非特权用户的工作.
如何让Envoy使用tty运行特定服务器以便它sudo chown ...可以工作?
我有简单的特使设置.服务器:
@servers(['ws' => 'ws.sk'])
Run Code Online (Sandbox Code Playgroud)
......和简单的"ping"任务:
@task('ping-ws', ['on' => 'ws'])
echo "Hello world from WS server!"
echo $(pwd)
pwd
var_1="Hello"
echo "${var_1}"
@endtask
Run Code Online (Sandbox Code Playgroud)
我想在哪里为变量赋值并稍后访问它们.虽然结果很意外:
envoy run ping-ws
Hello world from WS server!
/Users/davidlukac/dev/drupal/_devdesktop/davidlukac
/home
Run Code Online (Sandbox Code Playgroud)
$(pwd)命令在本地进行评估.var_1未分配,或在下一行超出范围.这是预期的行为吗?它有解决方法吗?
谢谢您的帮助!
我正在一个laravel项目中使用docker-compose,该项目用于本地开发环境,并且正在尝试通过laravel / envoy缩短用于安装作曲家依赖项和工匠的命令。这是到目前为止我们所做的一个示例:
@task('composer-require')
docker-compose exec -u 1000 web composer require {{ $package }}
@endtask
Run Code Online (Sandbox Code Playgroud)
并按如下使用
envoy run composer-install --package=xxx/yyy
现在我们的Envoy.blade.php文件越来越大,因为我们必须将每种用法作为一项任务,并且必须记住所有这些名称。
我想知道是否有可能,我们如何接受这样的命令envoy run composer install xxx/yyy,仅定义一个名为的任务composer,然后传递install xxx/yyy零件?
关于我的英语很抱歉
我正在尝试使用GitLab和Docker设置部署,但无法通过有关Envoy设置的官方Laravel文档中的初始设置。出于某些奇怪的原因,我无法通过房东与Envoy连接。
我正在关注本教程。任何帮助表示赞赏。我的房东可能有问题吗?我在本地计算机上运行命令。
envoy run list
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[?]此任务未在您的一台服务器上成功完成。
我的SSH登录有效,所以我没主意
Envoy.blade.php
@servers(['web' => 'MY HOST HERE'])
@task('list', ['on' => 'web'])
ls -l
@endtask
Run Code Online (Sandbox Code Playgroud) 我使用https://laravel.com/docs/5.4/envoy作为部署工具。在 Envoy.blade.php 中,我有需要 sudo 访问的命令,例如:-
chmod 777 -R storage/
chmod 777 -R bootstrap/cache
Run Code Online (Sandbox Code Playgroud)
这些命令失败并显示错误,指出操作不允许。我们该如何解决这个问题?
我正在将持续集成实现到我的Laravel工作流程中,并且在基本学习过程中,我在Gitlab上遇到了一个示例项目,其中(1.)Laravel Envoys用于编写与应用程序的部署方式有关的任务,然后与(2.)使用Gitlab CI引导过程。
我有些困惑,在我看来,使用Enovy定义任务的部分(波纹管)在定义.gitlab-ci.yml文件内的作业时很容易复制,这使Envoy的使用变得多余:
...
@setup
$repository = 'git@gitlab.example.com:<USERNAME>/laravel-sample.git';
$releases_dir = '/var/www/app/releases';
$app_dir = '/var/www/app';
$release = date('YmdHis');
$new_release_dir = $releases_dir .'/'. $release;
@endsetup
...
@task('update_symlinks')
echo "Linking storage directory"
rm -rf {{ $new_release_dir }}/storage
ln -nfs {{ $app_dir }}/storage {{ $new_release_dir }}/storage
echo 'Linking .env file'
ln -nfs {{ $app_dir }}/.env {{ $new_release_dir }}/.env
echo 'Linking current release'
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/current
@endtask
...
Run Code Online (Sandbox Code Playgroud)
如果有人错误地纠正了我,或者解释了Envoy可以为Gitlab Continuous Integration工作流程带来的好处,我将不胜感激。
我有一个 Laravel(Lumen) 登录 API,它使用 HS256 生成 JWT。然后我将不记名令牌发送到 Envoy Gateway 并从 Envoy 获取
JWT验证失败
在官方 JWT 解码网站上,我可以成功解码并验证我的不记名令牌。在这里我生成我的 JWT:
{
$payload = [
'iss' => config('app.name'), // Issuer vom Token
'sub' => strval($user->ID), // Subject vom Token
'username' => $user->username,
'iat' => time() - 500, // Time when JWT was issued.
'exp' => time() + config('jwt.ttl'), // Expiration time
'alg' => 'HS256',
'kid' => 'ek4Z9ouLmGnCoezntDXMxUwmjzNTBqptKNkfaqc6Ew8'
];
$secretKey = 'helloworld'; //my base64url
$jwtEnc = JWT::encode($payload, $secretKey, $payload['alg'], $payload['kid']);
return $jwtEnc;
}
Run Code Online (Sandbox Code Playgroud)
这是我的 Envoy …
为特使考虑以下任务:
@task('deploy', ['on' => 'web'])
cd personal_site
php artisan down
git pull origin master
composer install
php artisan migrate
php artisan up
@endtask
php artisan migrate // Blows up
Run Code Online (Sandbox Code Playgroud)
错误是:
[user@xxxx]: **************************************
* Application In Production! *
**************************************
[user@xxxx]: Command Cancelled!
[user@xxxx]: Application is now live.
Run Code Online (Sandbox Code Playgroud) 有没有办法隐藏命令的输出composer install?
我为 Laravel 应用程序运行一个部署脚本,当它打印数百行时,输出很混乱:
\n\n据我所知,似乎没有\xe2\x80\x99t 隐藏输出的标志。有什么建议吗?
\n我在laravel项目文件夹中运行以下命令,并得到以下错误。
rakib$ envoy run list --env=production
[ubuntu@54.187.123.4]: Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
但是我可以使用以下命令成功ssh:
ssh -i ~/.ssh/sw-new.pem ubuntu@54.187.123.4
Run Code Online (Sandbox Code Playgroud)
我的〜/ .ssh / config文件内容如下所示:
Host 54.187.123.4
IdentityFile ~/.ssh/sw-new.pem
Run Code Online (Sandbox Code Playgroud)
谁能建议我出现“权限被拒绝”错误的可能原因是什么?
laravel-envoy ×11
laravel ×8
php ×3
gitlab ×2
laravel-5 ×2
ssh ×2
bash ×1
composer-php ×1
deployment ×1
docker ×1
envoyproxy ×1
jwk ×1
jwt ×1
laravel-5.1 ×1
laravel-5.2 ×1
linux ×1
lumen ×1
sudo ×1
tty ×1
ubuntu ×1
ubuntu-16.04 ×1