标签: devops

如果警告数量超过一定限制,AzureDevOps 构建管道将失败

我热衷于不让项目质量失控。

我知道在某些情况下警告可能有意义,但我担心警告的数量会随着时间的推移而增加。

我有一个 Azure DevOps 构建(门控提交)管道,我只想允许 10 个警告,以便在某些时候开发人员必须解决他们的警告。

有没有办法对警告进行计数并在警告计数超过一定数量时阻塞管道?

谢谢!

azure devops azure-pipelines

9
推荐指数
1
解决办法
3727
查看次数

Azure 函数应用部署错误“在主机运行时遇到错误 (ServiceUnavailable)。(代码:400)”

我的 python 文件位于 Azure DevOps 存储库中。我正在尝试将其部署到 azure 函数应用程序并执行 py 文件。我已经建立了一个服务连接“测试”来连接资源组。我的代码如下。

脚步:

  • 任务:AzureFunctionApp@1 displayName:'Azure Function App Deploy:api'输入:azureSubscription:测试appType:functionAppLinux appName:api包:'$(System.DefaultWorkingDirectory)'runtimeStack:'DOCKER | microsoft / azure-functions-dotnet-core3 .0:3.0'startUpCommand:'func azure functionapp 发布 $(functionAppName) --no-bundler'

但是,我遇到错误##[错误]错误:无法同步函数应用程序“api”的触发器。错误:BadRequest - 在主机运行时遇到错误 (ServiceUnavailable)。(代码:400)

azure devops azure-function-app

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

GitHub 操作 手动审批流程

我知道 GitHub Action 手动触发是一个经常讨论的问题,手动审批的讨论较少,但仍然存在于社区中。

我有一个问题想问那些使用 Github actions 进行 CD 的人。

如您所知,Bitbucket、Gitlab、Azure Devops 等具有手动批准功能,这意味着管道可以到达流程中的某个步骤,例如:构建 -> 测试 -> 部署到登台。

下一步是部署到生产环境,但需要手动批准或触发。所以我的问题是,你们中是否有人使用相同的信息(分支名称、相同的测试结果)在 GitHub 操作中实现了该功能,而无需再次运行整个管道?(这就是为什么我还没有将我们从 Bitbucket 迁移到 GitHub 的原因)

谢谢您的回答

continuous-delivery devops github-actions

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

子域名,Nginx-proxy和Docker-compose

我正在寻找一种方法来配置Nginx通过我的服务器的子域访问托管服务.这些服务和Nginx都是用Docker-compose实例化的.

简而言之,在键入时jenkins.192.168.1.2,我应该访问192.168.1.2使用Nginx代理重定向托管的Jenkins .

快速浏览一下我目前拥有的东西.没有顶级域名它不起作用,因此它在play-with-docker.com上工作正常,但在本地不适用,例如192.168.1.2.

server {
    server_name jenkins.REVERSE_PROXY_DOMAIN_NAME;
        location / {
            proxy_pass http://jenkins:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host $host:$server_port;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
}
Run Code Online (Sandbox Code Playgroud)

看看我想要的东西:https://github.com/Ivaprag/devtools-compose

我的总体目标是访问远程docker容器而不修改客户端的DNS服务.

subdomain nginx docker docker-compose devops

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

通过覆盖删除docker-compose上的服务

当我们使用另一个文件docker-compose.prod.yml在composition/override中运行时,我希望删除docker-compose.yml文件中定义的容器,例如:

# docker-compose.yml
version: 2
services: 

  www:
    image: php56

  db_for_development:
    image: mariadb
Run Code Online (Sandbox Code Playgroud)

覆盖:

# docker-compose.prod.yml
version: 2
services: 

  www:
    image: php70

  db_for_development:
    [control: override-and-remove] # hypothesis
Run Code Online (Sandbox Code Playgroud)

然后,在运行时:

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
docker-compose -f docker-compose.yml -f docker-compose.prod.yml ps
Run Code Online (Sandbox Code Playgroud)

实际上,我www和我db_for_development在一起.

我只想要www容器,而不是其他容器.

docker-compose devops devops-services

8
推荐指数
3
解决办法
816
查看次数

如何使用Jenkins管道输入到docker文件中的git凭据?

我正在尝试从SCM加载Jenkins管道脚本.我必须构建一个docker镜像并将其推送到GCR.在docker镜像中,我需要安装私有git存储库.在这里,我试图从Jenkins输入获取git用户名密码.但我不知道如何在Dockerfile中使用它来拉取git repo.这些是我在SCM中的Jenkinsfile和Dockerfile.有什么建议?

詹金斯文件:

node {
def app

stage('Clone repository') {
    checkout scm

    def COMMITHASH = sh(returnStdout: true, script: "git log -n 1 --pretty=format:'%h'").trim()
    echo ("Commit hash: "+COMMITHASH.substring(0,7))
}

stage('Build image') {

    timeout(time: 600, unit: 'SECONDS') { 
        gitUser = input(
           id: 'gitUser', 
           message: 'Please enter git credentials :', 
           parameters: [
           [$class: 'TextParameterDefinition', defaultValue: "", description: 'Git user name', name: 'username'],
           [$class: 'PasswordParameterDefinition', defaultValue: "", description: 'Git password', name: 'password']
        ])
    }

    /* Build docker image */
    println('Build image stage');
    app = …
Run Code Online (Sandbox Code Playgroud)

jenkins docker devops jenkins-pipeline

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

在Docker容器中进行apk更新期间文件描述符描述符错误...为什么?

运行后:

docker network rm $NETNAME
docker network create --driver bridge $NETNAME --subnet "${SUBNET}0/24"
docker run --name $NODENAME -it --net $NETNAME --ip 192.168.0.2 --volume --detach $IMGNAME
Run Code Online (Sandbox Code Playgroud)

在容器中,以root身份运行apk udpdate

# apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/main: Bad file descriptor
WARNING: Ignoring APKINDEX.70c88391.tar.gz: Bad file descriptor
fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.7/community: Bad file descriptor
WARNING: Ignoring APKINDEX.5022a8a2.tar.gz: Bad file descriptor
2 errors; 33 distinct packages available
Run Code Online (Sandbox Code Playgroud)

...并击中Bad file descriptor错误。

还有许多其他人遇到相同的错误:

CDN似乎已关闭,无法使镜像工作#280

仓库问题?#279

有关如何解决此问题的建议,范围如下:

“这是一个DNS查找错误。只需将google DNS服务器(8.8.8.8、8.8.4.4)添加到Docker主机的守护进程配置文件中即可。”

... 至 ...

“将以下内容添加到您的Dockerfile:”

RUN …

linux docker dockerfile devops alpine-linux

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

"Ghost"kubernetes pod终止了

情况

我有一个kubernetes pod陷入"终止"状态,抵制pod删除

NAME                             READY STATUS       RESTARTS   AGE
...
funny-turtle-myservice-xxx-yyy   1/1   Terminating  1          11d
...
Run Code Online (Sandbox Code Playgroud)

funny-turtle从那时起删除的helm版本的名称在哪里.

我试过了什么

尝试删除pod.

输出:pod "funny-turtle-myservice-xxx-yyy" deleted 结果:它仍然显示在同一状态.- 也尝试过--force --grace-period=0,与额外警告相同的结果

警告:立即删除不等待确认正在运行的资源已终止.资源可能会无限期地继续在集群上运行.

尝试阅读日志(kubectl日志......).

结果: Error from server (NotFound): nodes "ip-xxx.yyy.compute.internal" not found

尝试删除kubernetes部署.

但它不存在.

所以我假设这个pod以某种方式与aws API"断开连接",从kubectl logs打印的错误消息推断.

我将采取任何建议或指导来解释这里发生的事情以及如何摆脱它.

编辑1

试图查看"ghost"节点是否仍在那里(kubectl delete node ip-xxx.yyy.compute.internal)但它不存在.

kubernetes devops kubernetes-helm

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

在Subversion中合并分支时的冲突预防

我最近在Subversion中发现了一个非常奇怪的合并冲突.我正在使用陆龟SVN作为客户端.请查看以下有关主干和分行详情的信息:

  • \树干\ .两个用户正在研究这个问题.
  • \ QA \是从主干合并的分支.
  • 为简单起见,在\ trunk\ClassLibrary1.sln中有一个visual studio解决方案
  • 目前解决方案中有一个示例项目.\干线\ ClassLibrary1的
  • 两个用户都已完全更新,并且没有任何工作副本更改.
  • 将发生以下事件序列.

  1. 用户1将首先在解决方案中添加一个新项目并提交整个目录.(ClassLibrary11)
  2. 用户2将获取更新并在解决方案中添加新项目并提交整个目录结构(ClassLibrary12)
  3. 上下文:在上面的补充中,ClassLibrary11是我们的特征X而ClassLibrary12是我们的特征Y.现在特征Y是稳定的,完全独立于特征X并且可以移动到QA分支.
  4. 合并过程:我们转到QA分支并将功能Y从主干合并到QA分支.它成功合并,没有任何冲突.
  5. 在开发3周后,功能X变得稳定,现在我们尝试将功能X移动到QA分支.但是当我们合并时,它会在ClassLibrary.sln文件中给出合并冲突

在此输入图像描述

意图:我们希望将整个流程自动化作为我们的Devops管道的一部分,其中功能(完全独立)可以从仪表板升级到不同的分支,这将合并与功能相关联的修订.在上面的情况下,特征X和特征Y是完全独立的(功能和代码文件也是如此).唯一的共同点是解决方案文件ClassLibrary.sln文件,其中添加了对这两个项目的引用.

Tortoise SVN应该自动发现修订版只是对2个不同提交的重新排序.所以我只是想知道一种方式(重新设计/预防性提交),以免这种冲突发生.如果他们应该发生那么我需要知道,虽然合并功能Y即ClassLibrary12,这将导致未来的冲突

svn tortoisesvn merge merge-conflict-resolution devops

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

DOWNLOAD_SOURCE失败的AWS CodeBuild

每当我启动AWS CodeBuild时,我每次都会遇到这种类型的错误.请帮忙.

DOWNLOAD_SOURCE失败3分钟,2秒

获取 https://github.com/themithunbiswas/test-repo.git/info/refs?service=git-upload-pack:拨打tcp 192.30.253.113:443:i/o timeout

amazon-web-services devops aws-codebuild

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