小编Ste*_*ain的帖子

詹金斯和码头工人:未指定uri

我在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 docker

8
推荐指数
1
解决办法
5545
查看次数

我可以在个别日程表上运行Jenkins Pipeline步骤或阶段吗?

我对Jenkins管道相对较新,并想知道是否可以将我当前的构建配置移植到Jenkinsfile.

目前,每个项目都有一个CI作业,一旦有人签入就会建立.这只是一个构建检查,不进行测试或静态代码分析.第二个Job完成整个构建,包括长时间运行的集成测试和sonarqube分析.无论这个特定项目的变化是否发生,第二个计划每天运行一次(每晚一次).

现在,如果我想将该配置移植到Jenkins Pipeline脚本中,我显然可以使用单独的脚本配置两个作业,但更有趣的部分是将它包装到Jenkins文件中,这样我就可以使用Multibranch Pipeline作业类型了不必重复SCM之外的任何配置.

问题是,如果可以将构建步骤(并将之前不再需要的构建中的步骤中止)推迟到另一个日程表 - 例如,仅在每晚的基础上运行集成测试?其他人如何采用快速构建检查的问题与在每次签入时可能没用的长期运行任务?

我还没有看到为Jenkins文件选择另一个名称的可能性(在multibranch管道作业类型中),因此可以有一个文件用于CI作业,另一个文件用于夜间.评估作业名称的脚本内部的条件可能是可能的,但对我来说看起来并不"正确",并且它不能解决每天晚上强制构建的问题.

感谢Daniel的任何想法

jenkins sonarqube jenkins-pipeline

8
推荐指数
2
解决办法
4683
查看次数

无法在Windows 10中启动Docker - 引发Hyper-V错误

在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)

hyper-v docker windows-10

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

执行kubeadm重置后,Kubernetes无法为pod设置网络

我用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 kubernetes flannel

6
推荐指数
1
解决办法
7358
查看次数

Docker swarm管理器无法识别swarm节点

我按照这些步骤创建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:└状态:待定 …

docker docker-swarm

5
推荐指数
1
解决办法
1406
查看次数

Jenkins 管道中作业 DSL 中的工作区路径

我正在创建一个 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 步骤中无法访问在管道区域中创建的变量

jenkins jenkins-job-dsl devops jenkins-pipeline

5
推荐指数
2
解决办法
8617
查看次数

KVM中的反向映射

我正在寻求一种在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结合使用。

我有以下问题。

  • 如果只有我可以访问L4来宾PTE,则我打算执行以下算法来确定来宾虚拟地址:

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?

  • 还有其他简单的方法可以做到这一点,包括利用kvm_mmu_page中的字段吗?我似乎什么也没想。

专家们可以发表评论吗?我很乐意为您提供帮助。谢谢。

linux memory memory-management kvm linux-kernel

5
推荐指数
0
解决办法
262
查看次数

NPM:警告:承诺是在处理程序中创建的......但未从中返回

我使用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)

node.js npm bluebird angular

5
推荐指数
0
解决办法
471
查看次数

ag-grid:如何在主详细信息模板中添加按钮

我在 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)

ag-grid angular5

5
推荐指数
1
解决办法
2247
查看次数

无法连接到 docker 托管的 MSSQL

我在 [本教程]( 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:错误:用于 …

sql-server docker

5
推荐指数
1
解决办法
5025
查看次数

Prometheus-Alertmanager警报的复杂规则/过滤器

情况:我安装了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)

期望的结果:

  • 除device_cpu_temperature以外的所有关键产品警报都发送到PagerDuty
  • 仅当型号不是6时,严重的prod device_cpu_temperature警报才会发送到PagerDuty(uuid包含型号后跟“ X”)
  • 仅当CPU温度高于80C时,来自模型6设备的严重prod device_cpu_temperature警报才会发送到PagerDuty。

还是在Prometheus中设置两个不同的警报规则会更好?某些规则只能应用于某些设备吗?如果是这样,怎么办?

monitoring health-monitoring prometheus pagerduty prometheus-alertmanager

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

Docker 安装 php mysql 扩展失败

我只是想获得一个简单的 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)

php mysql wordpress mysqli docker

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