繁体   English   中英

docker-compose build 和 http_proxy

[英]docker-compose build and http_proxy

我想测试ELK。 它工作正常但是当我想做一个

docker-compose up

在代理后面

docker-compose up --no-recreate 
Building kibana
Step 1 : FROM kibana:latest
 ---> 544887fbfa30
Step 2 : RUN apt-get update && apt-get install -y netcat
 ---> Running in 794342b9d807

它失败了

W: Some index files failed to download. They have been ignored, or old ones used instead.

可以吗

docker build  --build-arg  http_proxy=http://proxy:3128  --build-arg https_proxy=http://proxy:3128 kibana

但是当我重做一个 docker-compose up 时,我尝试重新构建,并且无法通过代理

有什么帮助吗?

您需要docker-compose 1.6.0-rc1才能通过 docker-compose 将代理传递给您的构建。
有关问题 2163 ,请参阅PR 2653中的提交 47e53b4

将所有与构建相关的配置移动到服务中的build:部分。
例子:

web:
  build:
    context: .
    dockerfile: Dockerfile.name
    args:
       key: value

正如mkjeldsen 在评论中指出的那样

如果key应该采用同名环境变量的value ,则可以省略 value ( docker-compose ARGS ):

对于https_proxy尤其有用:如果envvar未设置或为空,则构建器将不会应用代理,否则会。

我遇到了同样的问题。 帮助我的是使用显式版本 2.2,然后按照文档中的说明构建 -args 和 -network。

VonC 是对的,它通过在 docker-compose 文件的构建行下添加 args 部分对我有用:

原来的:

  ssh:
      build: ssh/.
      container_name: ssh
    ports:
      - "3000:22"
    networks:
      vault_net:
        ipv4_address: 172.16.238.20

修改的:

  ssh:
    build:
      context: "ssh/."
      args:
        HTTP_PROXY: http://X.X.X.X:XXXX
        HTTPS_PROXY: http://X.X.X.X:XXXX
        NO_PROXY: .domain.ltd,127.0.0.1
    container_name: ssh
    ports:
      - "3000:22"
    networks:
      vault_net:
        ipv4_address: 172.16.238.20

请注意,我必须为上下文添加引号,因为它需要格式化为字符串。

非常感谢。

你在干净的机器上试过了吗?

docker-machine stop default
docker-machine create -d virtualbox test
docker-machine start test
eval $(docker-machine env test)
docker-compose up

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM