我在jenkins中安装了docker,jenkins和docker -build-step.
我已经设置了一个步骤,以便从我的存储库的Dockerfile构建一个图像.
它把这个消息转发给我:
Started by BitBucket push by living_jordi
Started by BitBucket push by living_jordi
Building in workspace /var/lib/jenkins/workspace/Create Docker Images
Cloning the remote Git repository
Cloning repository git@bitbucket.org:livingdigital/docker-images.git
git init /var/lib/jenkins/workspace/Create Docker Images # timeout=10
Fetching upstream changes from git@bitbucket.org:livingdigital/docker-images.git
git --version # timeout=10
using GIT_SSH to set credentials BitBucket Private Key
git -c core.askpass=true fetch --tags --progress git@bitbucket.org:livingdigital/docker-images.git +refs/heads/*:refs/remotes/origin/*
git config remote.origin.url git@bitbucket.org:livingdigital/docker-images.git # timeout=10
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
git config remote.origin.url git@bitbucket.org:livingdigital/docker-images.git …Run Code Online (Sandbox Code Playgroud) 我对Jenkins管道相对较新,并想知道是否可以将我当前的构建配置移植到Jenkinsfile.
目前,每个项目都有一个CI作业,一旦有人签入就会建立.这只是一个构建检查,不进行测试或静态代码分析.第二个Job完成整个构建,包括长时间运行的集成测试和sonarqube分析.无论这个特定项目的变化是否发生,第二个计划每天运行一次(每晚一次).
现在,如果我想将该配置移植到Jenkins Pipeline脚本中,我显然可以使用单独的脚本配置两个作业,但更有趣的部分是将它包装到Jenkins文件中,这样我就可以使用Multibranch Pipeline作业类型了不必重复SCM之外的任何配置.
问题是,如果可以将构建步骤(并将之前不再需要的构建中的步骤中止)推迟到另一个日程表 - 例如,仅在每晚的基础上运行集成测试?其他人如何采用快速构建检查的问题与在每次签入时可能没用的长期运行任务?
我还没有看到为Jenkins文件选择另一个名称的可能性(在multibranch管道作业类型中),因此可以有一个文件用于CI作业,另一个文件用于夜间.评估作业名称的脚本内部的条件可能是可能的,但对我来说看起来并不"正确",并且它不能解决每天晚上强制构建的问题.
感谢Daniel的任何想法
在Windows 10中启动docker时出现以下错误.任何人都可以指导我正确安装docker吗?
Unable to create: The running command stopped because the preference variable
"ErrorActionPreference" or common parameter is set to Stop: Hyper-V encountered
an error trying to access an object on computer 'XXXX' because the object was not
found. The object might have been deleted, or you might not have permission to
perform the task. Verify that the Virtual Machine Management service on the
computer is running. If the service is running, try to perform the task again by
using …Run Code Online (Sandbox Code Playgroud) 我用Kubernetes初始化了kubeadm init,在我习惯kubeadm reset重置之后我发现--pod-network-cidr错了.在纠正之后我试图kubeadm再次使用初始化Kubernetes:
kubeadm init --use-kubernetes-version v1.5.1 --external-etcd endpoints=http://10.111.125.131:2379 --pod-network-cidr=10.244.0.0/16
Run Code Online (Sandbox Code Playgroud)
然后我在节点上遇到了一些错误
12? 28 15:30:55 ydtf-node-137 kubelet[13333]: E1228 15:30:55.838700 13333 cni.go:255] Error adding network: no IP addresses available in network: cbr0
12? 28 15:30:55 ydtf-node-137 kubelet[13333]: E1228 15:30:55.838727 13333 cni.go:209] Error while adding to cni network: no IP addresses available in network: cbr0
12? 28 15:30:55 ydtf-node-137 kubelet[13333]: E1228 15:30:55.838781 13333 docker_manager.go:2201] Failed to setup network for pod "test-701078429-tl3j2_default(6945191b-ccce-11e6-b53d-78acc0f9504e)" using network plugins "cni": …Run Code Online (Sandbox Code Playgroud) 我按照这些步骤创建Docker swarm集群.
第一:创建Cunsol
docker-machine create -d virtualbox mh-keystore
eval "$(docker-machine env mh-keystore)"
docker run -d \
-p "8500:8500" \
-h "consul" \
progrium/consul -server -bootstrap
Run Code Online (Sandbox Code Playgroud)
第二:创建群体管理器
docker-machine create -d virtualbox node1
docker run -d -p 4000:4000 swarm manage -H :4000 --replication -- advertise $(docker-machine ip node1):4000 consul://$(docker-machine ip mh-keystore):8500
Run Code Online (Sandbox Code Playgroud)
第三步:创建群集节点
docker-machine create -d virtualbox node2
docker run -d swarm join --advertise=$(docker-machine ip node2):2375 consul://$(docker-machine ip mh-keystore):8500
Run Code Online (Sandbox Code Playgroud)
第四:登录node1
docker-machine ssh node1
docker -H :4000 info
Run Code Online (Sandbox Code Playgroud)
但是这个指令输出
(未知):192.168.99.106
:
2375 (node2 ip)└ID:└状态:待定 …
我正在创建一个 jenkins 管道作业来使用 jenkins 作业 DSL 插件播种作业。如何获取 DSL 文件中的工作区路径?jenkins 管道代码如下:
#!groovy
node{
stage("build jobs"){
ws{
git poll: true, credentialsId: 'xxx', url: 'ssh://git@aaaaa.cc.xxx.com:/xxx/xxx.git'
checkout scm
jobDsl(removedJobAction: 'DISABLE', removedViewAction: 'DELETE', targets: 'jobs/*.groovy', unstableOnDeprecation: true)
}
}
}
Run Code Online (Sandbox Code Playgroud)
失败的 DSL 代码是:
hudson.FilePath workspace = hudson.model.Executor.currentExecutor().getCurrentWorkspace()
Run Code Online (Sandbox Code Playgroud)
随着错误:
Processing DSL script pipeline.groovy
java.lang.NullPointerException: Cannot invoke method getCurrentWorkspace() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at pipeline.run(pipeline.groovy:1)
at pipeline$run.call(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
在作业 DSL 步骤中无法访问在管道区域中创建的变量
我正在寻求一种在KVM中给定访客物理地址(gPA)的情况下获取访客虚拟地址(gVA)的机制。我对这一领域是完全陌生的,对KVM / linux内存管理的了解非常有限,因此在尝试阐述问题陈述时,请多多包涵。
从linux-2.6开始,在从内存中换出页面之前,使用了一种称为基于对象的反向映射(objrmap)的机制来使所有引用该页面框架的PTE无效。我了解anon_vma数据结构会聪明地收集相对于给定页面框架的所有内存区域描述符-并且一个基本的事实是,这些内存区域描述符具有指向包含所有引用该页面框架的PTE的页面表的指针,以使它们无效。在本机设置(无虚拟化)中,通过执行一些简单的算法,就可以轻松地使用anon_vma数据结构在进程线性地址空间内找到给定页面框架的虚拟地址:将区域描述符(vm_area_struct)中的vm_start与页面描述符(结构页面)中的page-> index。
VA = anon_vma->vma_area_struct->vm_start + page->index
这是理解Linux内核第3版中的图像,描述了匿名页面的这种机制
假设启用了二维分页(TDP),我希望在KVM中给定gPA的情况下执行类似的操作来找到gVA。但是,当我浏览KVM代码时,我看到KVM实现了反向映射方案,其中与实现objrmap相反,在其中存储了指向所有引用GFN(来宾帧编号)的PTE的指针。由于它需要在x86上支持3种不同的页面大小(4kB,2MB,1GB),因此它存储指向L1,L2和L3来宾PTE的指针。由于无法获取内存区域描述符,因此无法使用上述机制,将vm_start和page_index结合使用。
我有以下问题。
gVA[47:39] = (Address of L4 PTE - guest CR3)/PTE size
gVA[38:30] = (Address of L3 PTE - L4 PTE PFN)/PTE size
gVA[29:21] = (Address of L2 PTE - L3 PTE PFN)/PTE size
gVA[20:12] = (Address of L1 PTE - L2 PTE PFN)/PTE size
这种方法正确吗?如果是这样,有什么方法可以获取L4来宾PTE?
专家们可以发表评论吗?我很乐意为您提供帮助。谢谢。
我使用Node.Js 8.10.0和npm 5.8.0.几乎每次我试图通过"node -install"安装模块时,我都会收到很多错误:
(node:44148) Warning: a promise was created in a handler at C:\Users\Cedric\AppData\Roaming\npm\node_modules\npm\node_modules\pacote\lib\fetchers\registry\tarball.js:39:25 but was not returned from it, see ...
at ret (eval at makeNodePromisifiedEval (C:\Users\Cedric\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\promisify.js:184:12), <anonymous>:8:21)
(node:44148) Warning: a promise was created in a handler at C:\Users\Cedric\AppData\Roaming\npm\node_modules\npm\node_modules\pacote\lib\fetchers\registry\tarball.js:39:25 but was not returned from it, see ...
at ret (eval at makeNodePromisifiedEval (C:\Users\Cedric\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\promisify.js:184:12), <anonymous>:8:21)
...
Run Code Online (Sandbox Code Playgroud)
它似乎与"pacote"ou"bluebird"模块有关.我看看这些家属:
+-- npm@5.8.0
| +-- bin-links@1.1.0
| | `-- bluebird@3.5.1 deduped
| +-- bluebird@3.5.1
| +-- cacache@10.0.4
| | `-- bluebird@3.5.1 deduped
| …Run Code Online (Sandbox Code Playgroud) 我在 ag-grid 中使用主/详细信息。我想要在所有行之后的详细部分中有一个保存按钮。我可以使用模板来做到这一点,但它不会触发事件。我认为它只是一个模板,不适用于活动。您能否建议我如何在详细部分添加按钮
这是我的代码
columnDefs: [
{
headerName: "CompanyName",
field: "CompanyName",
cellRenderer: "agGroupCellRenderer"
}
],
groupDefaultExpanded: 0,
detailRowHeight: 200,
detailCellRendererParams: {
detailGridOptions: {
columnDefs: [
{
headerName: "Name",
field: "Name",
cellRenderer: "agGroupCellRenderer"
},
{
headerName: "Age",
field: "Age",
suppressFilter: true,
},
{
headerName: "Gender",
field: "Gender",
suppressFilter: true,
}
],
onGridReady: function (params: any) {
params.api.sizeColumnsToFit();
}
},
getDetailRowData: function (params: any) {
params.successCallback(params.data.ChannelComponentsVm);
},
template:
'<div style="height: 100%;">' +
'<div ref="eDetailGrid" style="height: 90%;"></div>' +
'<div style="height: 10%;"> <button (click)="saveEmployeeDetails()">Save</button> …Run Code Online (Sandbox Code Playgroud) 我在 [本教程]( https://hub.docker.com/r/microsoft/mssql-server-linux/ ) 之后遇到问题,我尝试通过 sqlcmd 连接到我的 docker 托管的 MSSQL。
我从 Windows 在 PowerShell 中执行了以下操作:
docker run -e 'ACCEPT_EULA=Y' --name mssql -e \
'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -it \
-d microsoft/mssql-server-linux:latest /bin/bash
Run Code Online (Sandbox Code Playgroud)
注意:添加“-it”和“/bin/bash”是因为如果没有检测到任何活动,docker将自动停止。
我跑去docker container ls -a验证它正在运行:
docker container Is -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92cfc504ab70 microsoft/mssql-server-linux:latest "/bin/bash" 27 minutes ago Up 27 minutes 0.0.0.0:1433->1433/tcp mssql
Run Code Online (Sandbox Code Playgroud)
我在我的主机上运行了 telnet local-ip :1433,它工作正常。
当我执行以下操作时,问题出在:
docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa \
-P yourStrong(!)Password
Run Code Online (Sandbox Code Playgroud)
错误:
Sqlcmd:错误:用于 …
情况:我安装了Prometheus和Alertmanager来监控各种设备的CPU温度。Alertmanager将警报从生产设备发送到PagerDuty。
我监视的设备具有不同的型号,具有不同的操作规格。1-5型的正常CPU温度是50C,而6型的是70C。当前,CPU温度警报的阈值为60C,因此PagerDuty不断从在正常温度下运行的Model 6设备获取警报。
如果温度低于80C,有没有办法仅从6型设备中过滤出CPU温度警报,而在60C下仍能获得1-5型设备的CPU温度警报?
注意:有许多其他指标正在监视,但是对于除CPU温度以外的所有其他指标,所有设备型号都具有完全相同的阈值。
这是我的一个代码片段,alertmanager.yml它将产品警报发送到PagerDuty
- match:
stack_name: prod
severity: critical
receiver: PagerDuty
Run Code Online (Sandbox Code Playgroud)
诚然,我没有很多YML经验。但这是我希望做的,但是我不确定语法是否正确:
- match:
stack_name: prod
severity: critical
alertname: !device_cpu_temperature
receiver: PagerDuty
- match:
stack_name: prod
severity: critical
alertname: device_cpu_temperature
uuid: !*6X*
receiver: PagerDuty
- match:
stack_name: prod
severity: critical
alertname: device_cpu_temperature
uuid: *6X*
value: >80
receiver: PagerDuty
Run Code Online (Sandbox Code Playgroud)
期望的结果:
还是在Prometheus中设置两个不同的警报规则会更好?某些规则只能应用于某些设备吗?如果是这样,怎么办?
monitoring health-monitoring prometheus pagerduty prometheus-alertmanager
我只是想获得一个简单的 docker 开发环境设置,但 docker 没有安装 php 的 mysql 扩展。我收到致命错误 - 调用未定义的函数 mysql_connect()。我尝试了不同的 php 版本(5.4、5.5、5.6、7.0),结果都相同。任何帮助,将不胜感激。
docker-compose.yml
version: '2'
volumes:
database_data:
driver: local
services:
nginx:
image: nginx:latest
ports:
- 8080:80
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
volumes_from:
- php
php:
build: ./docker/php/
expose:
- 9000
volumes:
- .:/var/www/html
testing:
build: ./docker/php/
volumes_from:
- php
mysql:
image: mysql:latest
expose:
- 3306
volumes:
- database_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: project
MYSQL_USER: project
MYSQL_PASSWORD: project
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM php:7.0-fpm
# Install pdo_mysql
RUN apt-get update \
&& echo 'deb …Run Code Online (Sandbox Code Playgroud) docker ×6
jenkins ×3
ag-grid ×1
angular ×1
angular5 ×1
bluebird ×1
devops ×1
docker-swarm ×1
flannel ×1
hyper-v ×1
kubernetes ×1
kvm ×1
linux ×1
linux-kernel ×1
memory ×1
monitoring ×1
mysql ×1
mysqli ×1
node.js ×1
npm ×1
pagerduty ×1
php ×1
prometheus ×1
sonarqube ×1
sql-server ×1
windows-10 ×1
wordpress ×1