Làm cách nào để định cấu hình gitlab-runner để chạy trong cùng một máy chủ docker như gitlab?


7

Tôi có một ví dụ gitlab đang chạy trong một container docker. Bây giờ tôi muốn thiết lập gitlab-runner trên cùng một máy chủ. Cả hai đang chạy:

docker container ls
CONTAINER ID        IMAGE                         COMMAND                  CREATED              STATUS                 PORTS                                                            NAMES
279473dceb2f        gitlab/gitlab-runner:alpine   "/usr/bin/dumb-ini..."   About a minute ago   Up About a minute                                                                       gitlab-runner
6d7af0d6b946        gitlab/gitlab-ce:latest       "/assets/wrapper"        2 hours ago          Up 2 hours (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8022->22/tcp   gitlab

Tôi đã đăng ký một hình ảnh docker như là một người chạy được chia sẻ:

concurrent = 1
check_interval = 0

[[runners]]
  name = "default shared maven runner"
  url = "http://url-of-my-gitlab.instance"
  token = "valid token"
  executor = "docker"
  [runners.docker]
    pull_policy = "never"
    tls_verify = false
    image = "maven-java-8:latest"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]

Hình ảnh đã đăng ký maven-java-8là một hình ảnh tùy chỉnh với tệp cài đặt chính xác và nó được liệt kê trong docker images.

Nhưng đường ống vẫn thất bại với:

Running with gitlab-ci-multi-runner 9.3.0 (3df822b)
  on Maven Test (5b2573e4)
Using Docker executor with image maven-java-8 ...
Using docker image  sha256:c266311d78b33f89f6eecce00f19a0428e37ba6af6734c8fced32fa11e4bd4ba for predefined container...
Pulling docker image maven-java-8 ...
ERROR: Job failed: Error response from daemon: repository maven-java-8 not found: does not exist or no pull access

Mà tôi diễn giải khi nó đang cố gắng sử dụng các hình ảnh cục bộ bên trong thùng chứa gitlab-runner.

Phiên bản GitLab là gitlab-ce 9.2.7 và phiên bản người chạy là v9.3.0.

Nội dung của .gitlab-cy.yml của tôi là:

test:
  script:
    - mvn clean test

Tôi đang thiếu gì?

Câu trả lời:


5

Tóm tắt quản lý

Đặt pull_policythành "never"trong [runners.docker]phần bằng cách gọi:

docker exec -it gitlab-runner \
  vi /etc/gitlab-runner/config.toml

miêu tả cụ thể

Có vẻ như vấn đề là một sự nhầm lẫn với hình ảnh và khối lượng gắn kết.

Các tài liệu nói để cấu hình các vận động viên trong:

/etc/gitlab-runner/config.toml

Mà tôi đã làm, nhưng trên máy chủ. Khi chạy gitlab-runnertrong một container docker, nó sẽ gắn một âm lượng:

... -v /srv/gitlab-runner/config:/etc/gitlab-runner ...

Điều này có nghĩa là, tệp cấu hình /etc/...trong bộ chứa được gắn /srv/...vào máy chủ.

Trong tập tin pull_policynày, không được đặt, mặc định always, điều cuối cùng gây ra vấn đề của tôi ở nơi đầu tiên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.