当前位置: 首页 > 面试题库 >

如何通过Jenkins在HTTP_PROXY之后使用Dockerfile构建Docker映像?

慎俊雄
2023-03-14
问题内容

构建Docker映像可以在桌面上正常工作。安装Node.js
NPM依赖项照常工作。但是,当使用在公司代理后面托管的持续集成服务器(例如Jenkins)时,构建Docker映像将失败。

Node.js NPM依赖关系

在构建Node.js pacakges时,如果在克隆GIT依赖项时无法连接到GIT ,则命令 npm install 失败。

e1ce5e8407d1: Already exists
Status: Image is up to date for node:0.10.33
 ---> e1ce5e8407d1
Step 1 : RUN mkdir -p /usr/src/app
 ---> Using cache
 ---> 965cad0c68b0
Step 2 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 4c498f0c07e9
Step 3 : COPY package.json /usr/src/app/
 ---> b0662a8275fb
Removing intermediate container 5aca20551452
Step 4 : RUN npm install
 ---> Running in 7ccf9e5362af
npm WARN package.json newww@2.0.0 No README data
npm WARN package.json Dependency 'async-cache' exists in both dependencies and devDependencies, using 'async-cache@^0.1.5' from dependencies
npm ERR! git clone https://github.com/npm/npm2es.git Cloning into bare repository '/root/.npm/_git-remotes/https-github-com-npm-npm2es-git-60a75edb'...
npm ERR! git clone https://github.com/npm/npm2es.git fatal: unable to access 'https://github.com/npm/npm2es.git/': Failed to connect to github.com port 443: Connection timed out

Java Maven,Ruby,具有依赖关系的Docker映像

当构建Java,Ruby或Go容器时,会发生相同的情况,其中依赖关系位于整个公司代理服务器中的存储库服务器中。

知道您可以使用HTTP_PROXY环境变量配置Docker后,如何正确配置Docker以在CI环境中正确构建映像?


问题答案:

注意:Docker 1.9 可能 有助于解决此问题:

  • “ 问题14634 ”: 构建器-传递构建时参数 (例如HTTP_PROXY
  • “ PR 15182 ”: 支持在构建上下文中传递构建时变量

用法(建议):

docker build --build-arg http_proxy=http://my.proxy.url  --build-arg foo=bar <<MARK
FROM busybox
RUN <command that need http_proxy>
ARG --description="foo's description" foo
USER $foo
MARK


 类似资料:
  • 问题内容: 通过使用詹金斯,我创建了一个“管道”类型的项目。然后将“ SCM管道”设置为。您可以检查我的GitHub存储库: 我想使用Jenkins管道构建docker映像。这是Jenkinsfile: Dockerfile也非常简单: 当我运行项目时。我收到以下错误: 这是完整的控制台输出 我检查了工作区: 测试 目录中什么都没有,但是Jenkinsfile和Dockerfile都在 test

  • 通过使用jenkins,我创建了一个“管道”类型的项目。我设置了“来自SCM的管道”来获取< code>Jenkinsfile。你可以查看我的GitHub库: 我想使用 Jenkins 管道来构建一个 docker 映像。以下是 Jenkinsfile: Dockerfile文件也非常简单: 当我运行这个项目时。我得到以下错误: 这是完整的控制台输出 我检查了工作区: 测试目录中没有任何内容,但J

  • 本文向大家介绍Docker如何使用Dockerfile构建镜像,包括了Docker如何使用Dockerfile构建镜像的使用技巧和注意事项,需要的朋友参考一下 Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和

  • 我有一个使用在本地开发中运行的项目 但是,我想知道,对于如何将一个通过和应用程序代码库运行多个服务的项目包含到一个带有的映像中进行部署,是否有任何建议或建议。 编辑:据我所知,方法是用Dockerfile从应用程序代码库中构建一个新的映像,然后将其包含在部署环境的文件中? 编辑二:对混淆表示歉意。我在码头是新的,有一点学习曲线!在这种情况下,似乎可以在gitlab注册表中构建应用程序映像,然后将该

  • 问题内容: 我正在尝试 使用 官方链接中提到 的API 构建 docker镜像 。 但是我无法获得文件中的内容:示例请求: 有几件事使我感到困惑, 1)在哪里提到 Dockerfile 的 路径 ? 2)“归档文件必须在归档文件的根目录中包含一个构建指令文件,通常称为Dockerfile。” 来自docker docs的此声明,这里的困惑 是存档的根 是 什么 ? 3) 构建图像的详细命令 是什么

  • 我是Docker和Jenkins的新手,我正在尝试创建一个Jenkins管道来构建Docker的形象。我在尝试构建时遇到了问题,并不断收到此错误: /var/jenkins_home/workspace/Docker-Pipeline@tmp/耐用-a11b32f8/脚本。sh:第1行:docker:未找到命令 我已经在虚拟机上安装了ubuntu 我正在做和他完全一样的事情,但总是失败。