【发布时间】:2020-03-09 20:40:28
【问题描述】:
我使用 Kubernetes 设置我的 Gitlab 实例以进行部署,并使用 Kubernetes 集群执行我的 CI。 Kubernetes 是由 Gitlab 管理的,所以我从来没有亲自接触过 kubernetes。 Gitlab 安装四个可用的包:Helm Tiller Ingress、Cert-Manager、Prometheus 和 GitLab Runner。
我使用来自https://vitux.com/install-and-deploy-kubernetes-on-ubuntu/ 的教程在准系统服务器上安装了 Kubernetes 集群。服务器的操作系统是 Ubuntu 18.04 最小。我发现,Gitlab 无法在 Kubernetes 1.16 版本上安装 Helm Tiller,所以我在服务器上安装了 Kubernetes 1.15.5-00 版本。
问题:
我有一个项目,我想在其中构建一个 docker 映像。我尝试使用 dind 服务通过部署在 kubernetes 平台上的 gitlab 运行器构建 docker 映像。
构建过程失败,输出如下:
Running with gitlab-runner 12.1.0 (de7731dd)
on runner-gitlab-runner-699dc9bcc8-sgmcw -YPHFGCL
Using Kubernetes namespace: gitlab-managed-apps
Using Kubernetes executor with image docker:stable ...
Waiting for pod gitlab-managed-apps/runner--yphfgcl-project-97-concurrent-0qj6sn to be running, status is Pending
Waiting for pod gitlab-managed-apps/runner--yphfgcl-project-97-concurrent-0qj6sn to be running, status is Pending
Waiting for pod gitlab-managed-apps/runner--yphfgcl-project-97-concurrent-0qj6sn to be running, status is Pending
Running on runner--yphfgcl-project-97-concurrent-0qj6sn via runner-gitlab-runner-699dc9bcc8-sgmcw...
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/sadion/ci-test/.git/
Created fresh repository.
From https://git.sadion.net/sadion/ci-test
* [new branch] master -> origin/master
Checking out d179001c as master...
Skipping Git submodules setup
$ docker --version
Docker version 19.03.4, build 9013bf583a
$ docker build -t $TEST_NAME .
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
ERROR: Job failed: command terminated with exit code 1
源文件:
我使用的 Dockerfile 非常简单并且有效,因为我能够在本地机器上构建映像:
FROM httpd:2.4
COPY ./index.html /usr/local/apache2/htdocs/
我正在使用的.gitlab-ci.yml 文件是:
image: docker:stable
variables:
TEST_NAME: local/test
services:
- docker:dind
stages:
- build
before_script:
- docker info
build_docker_image:
stage: build
before_script:
- docker --version
script:
- docker build -t $TEST_NAME .
tags:
- build
- kubernetes
尝试导出 DOCKER_HOST
我还尝试导出 DOCKER_HOST 变量。但是配置后我得到了同样的错误:
image: docker:stable
variables:
TEST_NAME: local/test
DOCKER_HOST: tcp://localhost:2375
services:
- docker:dind
stages:
- build
before_script:
- docker info
build_docker_image:
stage: build
before_script:
- docker --version
script:
- docker build -t $TEST_NAME .
tags:
- build
- kubernetes
跑步者的输出是:
Running with gitlab-runner 12.1.0 (de7731dd)
on runner-gitlab-runner-699dc9bcc8-sgmcw -YPHFGCL
Using Kubernetes namespace: gitlab-managed-apps
Using Kubernetes executor with image docker:stable ...
Waiting for pod gitlab-managed-apps/runner--yphfgcl-project-97-concurrent-042nmk to be running, status is Pending
Waiting for pod gitlab-managed-apps/runner--yphfgcl-project-97-concurrent-042nmk to be running, status is Pending
Waiting for pod gitlab-managed-apps/runner--yphfgcl-project-97-concurrent-042nmk to be running, status is Pending
Running on runner--yphfgcl-project-97-concurrent-042nmk via runner-gitlab-runner-699dc9bcc8-sgmcw...
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/sadion/ci-test/.git/
Created fresh repository.
From https://git.sadion.net/sadion/ci-test
* [new branch] master -> origin/master
Checking out 57b6be1d as master...
Skipping Git submodules setup
$ docker --version
Docker version 19.03.4, build 9013bf583a
$ docker build -t $TEST_NAME .
Cannot connect to the Docker daemon at tcp://localhost:2375. Is the docker daemon running?
ERROR: Job failed: command terminated with exit code 1
【问题讨论】:
-
reading the fine manual 没有做你想做的事吗?
标签: docker kubernetes gitlab gitlab-ci gitlab-ci-runner