2015-07-30 14 views
5

Tôi vẫn chưa hoàn toàn hiểu được quá trình cho một gitlab-ci multi runner để bắt đầu một docker và tương tác bên trong với mã.GitLab-CI multi dock starterer container

Có thể cho nhân tố đa gitlab-ci khởi động một thùng chứa docker có mã hiện tại bên trong thùng chứa docker này và sau đó chạy thử nghiệm đối với mã này không? (ví dụ: mã linting)

Tôi về cơ bản muốn có một thùng chứa đế lót có nhiều loại linters khác nhau được cài đặt. Đa nhân tố GitLab-CI nên chạy trên hệ thống máy chủ và khởi động vùng chứa docker theo yêu cầu. Bên trong vùng chứa docker, mã nên được kiểm tra với phpcs chẳng hạn.

Làm cách nào để nhận mã repo vào vùng chứa docker?

Thanks for the help

Trả lời

1

Thứ nhất, gitlab-Á hậu cần có ổ cắm Docker gắn như mô tả trong documentation:

docker run -d --name gitlab-runner --restart always \ 
-v /var/run/docker.sock:/var/run/docker.sock \ 
-v /srv/gitlab-runner/config:/etc/gitlab-runner \ 
gitlab/gitlab-runner:latest 

Sau đó, bạn phải đăng ký các Á hậu với:

  1. docker làm người thực thi. Hình minh hoạ
  2. hình ảnh Docker với thỏi bạn muốn làm hình ảnh Docker.
0

Mọi docker client sẽ chuyển tiếp lệnh đến docker daemon, trình cắm trình neo sẽ nghe cổng cục bộ như http, tcp hoặc unix socket.

Khi bạn khởi động chứa như thế này:

Docker chạy -d --name gitlab-Á hậu --restart luôn \ -v /var/run/docker.sock:/var/run/docker .sock \ -v/srv/gitlab-Á hậu/config:/etc/gitlab-Á hậu \ gitlab/gitlab-Á hậu: mới nhất

Tất cả các lệnh Docker sẽ chuyển tiếp đến máy chủ, như Docker là nghe trên unix:///var/run/docker.sock

PS: Bạn nedd để cài đặt docker trong gitlab-runner container

0

Tôi biết câu hỏi này là cũ, nhưng tôi nghĩ tôi vẫn trả lời, vì tôi đã làm việc trên những thứ tương tự tại thời điểm này và tôi nghĩ rằng tôi muốn trả lời nó trong một quy mô lớn hơn, để đưa ra một ý tưởng cơ bản, một điểm khởi đầu, hiểu được quá trình xây dựng với GitLab-CI.

Có nhiều cách khác nhau để cài đặt gitlab-runner trên hệ thống, như được mô tả here. Nó luôn luôn sẽ xuống để cài đặt các Á hậu và sau đó đăng ký các Á hậu tại dụ gitlab của bạn.

Bạn sẽ được hướng dẫn qua quy trình đăng ký here. Trong quá trình đăng ký, bạn sẽ phải chọn người thực hiện mà trên đó các bản dựng sẽ được thực hiện. Đây có thể là ssh, docker + machine, docker-ssh +, kubernetes, docker, song song, virtualbox, docker-ssh và shell: docker.

Giả sử bạn chọn docker làm người thực thi. Khi một bản dựng đã được chuyển cho người chạy của bạn, nó sẽ bắt đầu một thùng chứa xây dựng, trong đó bản dựng sẽ được thực thi . Trong một số thiết lập dự án không có hình ảnh nào được định nghĩa là 'môi trường cơ sở'. Vì vậy, trong quá trình đăng ký runner (người thực hiện docker), bạn sẽ được yêu cầu để xác định hình ảnh mặc định có thể được sử dụng làm vùng chứa, môi trường cho bản dựng của bạn.

Vì vậy, nếu bạn có dự án không xác định 'môi trường cơ sở', bạn phải chọn một dự án đáp ứng nhu cầu xây dựng của mình. Ví dụ. nếu bạn chạy xây dựng của bạn được định nghĩa trong một kịch bản kiến, bạn sẽ cần một hình ảnh có kiến ​​được cài đặt hoặc bạn sẽ cần phải thiết lập kiến ​​trong .gitlab-ci.yml của bạn.

Trong tệp .gitlab-ci.yml bạn sẽ mô tả (các) đường ống xây dựng của mình (see more about that here). Ở đó bạn cũng có thể xác định chính xác hơn làm thế nào để sao chép repo của bạn vào container xây dựng của bạn. Nhưng với cấu hình mặc định, nhân bản sẽ xảy ra mỗi khi người đóng góp đang đẩy các thay đổi trên cơ sở mã của bạn vào kho lưu trữ git (lab).

GitLab yêu cầu bạn sử dụng kho git tích hợp sẵn. Điều này cho phép GitLab sao chép các repos mà không cần cấu hình thêm (ngoài cấu hình quản trị, bạn sẽ phải thực hiện thiết lập GitLab và duy trì nó).

Bạn có thể hỗ trợ vùng chứa xây dựng bằng các vùng chứa bổ sung (được gọi là 'dịch vụ'), ví dụ: một thùng chứa cơ sở dữ liệu cho các thử nghiệm được chạy ngược lại trong quá trình xây dựng.

Để biết thêm thông tin, hãy xem https://docs.gitlab.com/runner/https://docs.gitlab.com/ee/README.html