Tag: docker jenkins

如何解决RHEL容器上的“通道0上的shell请求失败”?

我试图从一个Jenkins容器(RHEL7)连接到一个Stash仓库。 连接似乎authentication成功,但不久后失败。 Connection established. debug1: identity file /var/jenkins_home/.ssh/id_rsa type 1 debug1: key_load_public: No such file or directory debug1: identity file /var/jenkins_home/.ssh/id_rsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file /var/jenkins_home/.ssh/id_dsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /var/jenkins_home/.ssh/id_dsa-cert type -1 debug1: key_load_public: No such file or […]

通过npm install – Docker Container访问private git repos

我正在build立一个Docker容器,这个容器将从GitHub中抽取私有的回购作为这个过程的一部分。 目前我正在使用从命令行传递的Access Token (一旦构build通过Jenkins触发,将会更改)。 docker build -t my-container –build-arg GITHUB_API_TOKEN=123456 . # Dockerfile # Env Vars ARG GITHUB_API_TOKEN ENV GITHUB_API_TOKEN=${GITHUB_API_TOKEN} RUN git clone https://${GITHUB_API_TOKEN}@github.com/org/my-repo 这工作正常,似乎是一个安全的方式做到这一点? (尽pipe需要在构build时检查var GITHUB_API_TOKEN) 我正在寻找人们如何处理SSH密钥或访问令牌时运行npm install和依赖从github拉 "devDependencies": { "my-repo": "git@github.com:org/my-repo.git", "electron": "^1.7.4" } 目前,我不能拉这个回购,因为我得到的错误Please make sure you have the correct access rights因为我没有在这个容器中的SSH密钥设置 任何帮助赞赏 谢谢

jenkins如何构build/克隆安装在Docker容器中的远程git仓库?

我有一个支持Docker容器的专用Synology NAS Cloud。 现在我计划一个私人构build和部署pipe道或类似的东西。 我做的第一步是: 在Synology上安装Git Server 初始化一些回购 克隆他们在我的MacBook上 通过ssh进行通信(commit,push,pull) – >一切正常。 现在我已经在NAS上启动了一个Jenkins映像的Docker容器。 我想让Jenkins在NAS上(我在MacBook上克隆的同一个存储库)轮询我的远程存储库。 我还将所有远程存储库的“/ git”文件夹挂载到Jenkins Docker容器中。 所以我想将知识库URL添加到Jenkins作业中: file:///git/firstRepo —>但这不工作:( ERROR: Error fetching remote repo 'origin' hudson.plugins.git.GitException: Failed to fetch from file:///git/firstRepo at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:817) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1084) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1115) at hudson.scm.SCM.checkout(SCM.java:495) at hudson.model.AbstractProject.checkout(AbstractProject.java:1276) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild. java:560) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:485) at hudson.model.Run.execute(Run.java:1735) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) […]

jenkinsfiledocker代理访问私人存储库和composer php

我试图在Jenkinsfile中使用声明性的pipe道来build立我的PHP应用程序。 我的jenkins运行在docker集装箱,因为我也想用这个服务器的其他服务。 现在我的问题是,我必须安装私人包从bitbucket通过与composer php的公钥authentication。 对于composer php,我使用docker集线器上官方composer php的docker集装箱。 这是我的Jenkinsfile: pipeline { environment { BUILD_VERSION = new java.text.SimpleDateFormat('yyyyMMddHHmmss').format(new Date()) } options { buildDiscarder(logRotator(numToKeepStr: '3')) } agent any stages { stage('composer install') { agent { docker { image 'composer:latest' args "–volume /tmp:/app –volume /etc/passwd:/etc/passwd:ro –volume /etc/group:/etc/group:ro -u 1000" } } steps { sshagent(credentials: ['jenkins_ssh_key']){ sh 'composer install -d […]

Jenkins:重复性Git轮询构build(Docker容器)

Linux构build系统。 Jenkins 2.73.2(jenkins / jenkins:lts Docker图像)Git Plugin 3.6.2 很基本的设置: 限制可以运行的项目(设置为发生构build的Docker容器的名称)。 分支构build:分支规范:“**” 其他行为:高级克隆行为:不提取标签 轮询PCM:“H / 5 * * * *”(Bitbucket无法通过networking到达此服务器以触发Git推送) Git轮询日志只是说“发现的变化”: Started on Oct 27, 2017 2:18:58 AM Polling SCM changes on [node_unavailable] Using strategy: Default [poll] Last Built Revision: Revision adaec1b1c0e4b83dab922eeb490b2f09a4839d30 (origin/EGN-1489) Done. Took 1 ms Changes found 每五分钟一次,这会不断触发相同的构build。 GIT_BRANCH=origin/EGN-1489 GIT_COMMIT=adaec1b1c0e4b83dab922eeb490b2f09a4839d30 GIT_PREVIOUS_COMMIT=adaec1b1c0e4b83dab922eeb490b2f09a4839d30 GIT_PREVIOUS_SUCCESSFUL_COMMIT=adaec1b1c0e4b83dab922eeb490b2f09a4839d30 在阅读可能的解决scheme时,我尝试了“擦除存储库和强制克隆”选项和“使用工作区强制轮询”选项,但是这些和我尝试过的任何东西似乎都没有工作。 我也没有任何post-commit钩子或任何特别的东西。 […]

为什么我的一个Docker容器不能在机器启动时自动启动?

我有两个Docker容器,一个运行Jenkins实例,另一个运行YouTrack 。 他们各自的起始脚本如下所示: Jenkins: docker run –name jenkins_master –restart on-failure -p 8080:8080 -p 50000:50000 -v /home/ci/jenkins_home/:/var/jenkins_home -d jenkins:latest YouTrack:docker docker run –name youtrack –restart on-failure -p 8081:80 -v /home/ci/youtrack/data/:/opt/youtrack/data/ -v /home/ci/youtrack/backup/:/opt/youtrack/backup -d uniplug/youtrack 正如你所看到的,没有什么特别的,有些端口映射和一些-v 。 我希望他们在启动电脑时开始运行。 Docker文档说: “ Docker提供重启策略来控制你的容器在退出时自动启动,还是在Docker重启时启动。 当我启动我的机器时Docker“重新启动”,由于–restart on-failure ,我假定两个容器都在启动时运行。 但是只有Jenkins开始在端口8080上运行,当我重新启动我的机器时,我必须手动启动YouTrack。 我怎样才能避免手动启动容器?