我正在寻找一种方法来运行由Jenkins 2.0中的多个容器组成的支持Docker的构建.
是否有任何计划在Pipeline中对Docker Compose进行原生支持,或者通过CloudBees docker插件进行管道.
或者可以/必须通过显式调用解决这个问题sh docker-compose...吗?甚至可以在内部使用它们try... finally
来进一步控制服务生命周期.
编辑:第一个答案是建议一种在jenkins中构建docker容器的方法.这不是这里所需要的.我(EngineerDollery)希望使用compose在jenkins中启动我的目标平台,以便我可以将我的应用程序部署到它并运行端到端测试.
我正在考虑使用最近詹金斯管道脚本,一个问题是,我没有想出一个聪明的方法来创建可重用的内部代码utils的,想象一下,我有一个共同的功能helloworld将通过大量的管道作业的使用,所以我希望创建一个utils.jar可以将其注入作业类路径.
我注意到Jenkins与全局库有类似的概念,但我对这个插件的关注:
既然是一个插件,所以我们需要安装/通过詹金斯插件管理器升级,那么它可能需要重新启动以应用更改,这不是我希望看到的,因为utils的可能更改,添加往常一样,我们希望它可能是立即可用.
其次,它是官方jenkins共享lib,我不想(或者他们不会申请我们)将私人代码放入jenkins repo.
有什么好主意吗?
我正在寻找一种方法来将构建工件上传为Jenkins中的Github Release作为构建后操作或发布者 - 类似于Publish Over.
Jenkins的Github插件(JENKINS-18598)尚未支持此功能.
我一直在研究postbuild-task插件,但这似乎不支持环境变量(我认为这有助于防止在构建输出中记录我的API令牌).
有没有人这样做过呢?用Jenkins解决这个问题的好方法是什么?通过cURL或CLI客户端上传(例如基于Go的github-release).
在www.ssllabs.com上测试我的SSL证书时,我试图在所有类别上获得100分
但是,我很难在所有分数上获得A +和100分.
关于我应该使用什么NGINX配置的任何提示?或者我应该如何生成Let的加密证书?谢谢
我有以下nginx配置:
location /mail {
rewrite ^/mail/(.*) /$1 break;
proxy_pass https://roundcube-host;
proxy_connect_timeout 1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
}
Run Code Online (Sandbox Code Playgroud)
有:
upstream roundcube-host {
server roundcube-ip-address:443;
}
Run Code Online (Sandbox Code Playgroud)
所以,我想将所有请求从/ mail重定向到后端roundcube服务器.
但是,只有匹配的请求才会/mail被重定向.因此,/mail/plugins等等...没有被重定向,这意味着我没有任何CSS或JS等,因为nginx试图在本地找到它们.
如何正确重定向所有路径?
这是我完整的nginx配置.前端是自己的云.
upstream phpcgi {
fair;
server 127.0.0.1:9000;
server 127.0.0.1:9001;
keepalive 5;
}
upstream roundcube-host {
server roundcube-ip-address:443;
}
server {
listen 443 ssl;
#server_name cloud.example.com;
ssl_certificate /etc/ssl/certs/owncloud.crt;
ssl_certificate_key /etc/ssl/private/owncloud.key;
access_log /var/log/nginx/data_access.log;
error_log /var/log/nginx/data_error.log info;
# Path to the root of …Run Code Online (Sandbox Code Playgroud) Ruby版本2.2.4,Rails版本5.0.0.1.
我陷入了测试登录的教程的一部分curl.我收到一个错误
ArgumentError(在process_action回调之前:尚未定义verify_authenticity_token).
我在sessions_controller中使用了这段代码:
skip_before_action :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' }
Run Code Online (Sandbox Code Playgroud)
有人知道答案吗?
我有一个Git存储库,其中包含我想构建的代码,但我不允许Jenkinsfile在其根目录中添加一个(它是Debian软件包,因此我无法将文件添加到上游源代码中).有没有办法将其存储Jenkinsfile在一个存储库中并让它从另一个存储库构建代码?由于我的代码库有几个分支要构建(每个Debian版本一个),这应该是一个多分支管道.在代码或Jenkinsfile存储库中提交应该触发构建.
奖金复杂性:我有几个这样的代码/打包存储库,我想重复使用Jenkinsfile它们.因此它应该以某种方式动态获取正确的Git URL以供使用.要构建的分支在所有存储库中具有相同的名称.
Jenkins有一个$ CAUSE变量可用于自由式构建作业.
如何在工作流程中访问此类似内容?
我的团队在现有ad-hoc构建的电子邮件输出中使用它.我们希望在基于工作流程的新工作中继续这样做.
我目前在配方中使用此代码:
template "/var/django/.ssh/id_rsa" do
source "id_rsa.erb"
owner "django"
group "django"
variables :key => ssh_key
mode 00600
end
Run Code Online (Sandbox Code Playgroud)
这是id_rsa.erb看起来像:
<%= @key %>
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以避免使用模板,只是从字符串中生成文件.也许这样的东西:
file_from_string "/var/django/.ssh/id_rsa" do
source ssh_key
owner "django"
group "django"
mode 00600
end
Run Code Online (Sandbox Code Playgroud) Jenkins multibranch管道总是在主节点上执行checkout.在我的情况下,我想在另一个节点上进行构建.我在Jenkinsfile中的脚本如下所示:
node('osx') {
...
}
Run Code Online (Sandbox Code Playgroud)
我不得不env.BRANCH再次在我的节点上结账以执行构建.从一开始就在所选节点上执行管道构建会好得多,但我找不到如何做到这一点.