我是 concourse 的新手,正在尝试在我的环境中设置它。我在 Windows 机器上的 Virtualbox 6.1.4 r136177 上运行 Ubuntu 18.04。我设法让节点运行并设置了大厅工作人员,并且能够成功访问我的大厅仪表板。问题发生在我试图运行一个简单的 hello world 管道时,如本页所述:https://concourse-ci.org/hello-world-example.html
错误说:
[31mERRO [0m[0004] check failed: get remote image: Get https://index.docker.io/v2/: dial tcp: lookup index.docker.io on [::1]:53: read udp [::1]:55989->[::1]:53: read: connection refused
谷歌搜索类似错误表明 virtualbox 可能无法连接到 docker 存储库。所以我继续将 docker 安装到我的系统并运行以下命令:
sudo docker run hello-world
但是这次docker成功拉取了镜像。所以我认为这不是我的 virtualbox 的问题。有没有人遇到过同样的问题并找到了解决方案?
更新
以下问题启发我建立自己的注册表: How to use a local docker image as resource in concourse-docker
我已经配置了我的本地 docker registry,并通过从我自己的 registry 中拉取我的图像来验证它确实有效。因此,我通过修改 hello world 示例配置了一个简单的 concourse 管道来使用我的注册表:
---
jobs:
- name: job
public: true
plan:
- task: simple-task
config:
platform: linux
image_resource:
type: docker-image
source:
repository: 127.0.0.1:5000/busybox
tag: latest
insecure_registries: [ "127.0.0.1:5000" ]
run:
path: echo
args: ["Hello, world!"]
但是我遇到了以下错误:
resource script '/opt/resource/check []' failed: exit status 1
stderr:
failed to ping registry: 2 error(s) occurred:
* ping https: Get https://127.0.0.1:5000/v2: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers
* ping http: Get http://127.0.0.1:5000/v2: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers
最佳答案
127.0.0.1
可能指的是检查容器的 IP,而不是 Concourse 作为 worker 运行的机器(除非你有 houdini
作为容器战略)。尝试获取运行 docker 的机器的实际 IP 并尝试。
关于docker - 大厅无法连接到 Docker 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60860860/