2017-07-15 46 views
5

Tôi muốn chạy Jenkins trong vùng chứa Docker. Mọi thứ ổn cả. Tôi có thể chạy nó như thế này: docker run -d --name jenkins -t -i -p 49001:8080 jenkins Tôi cũng có thể thêm bộ nhớ liên tục. Vấn đề xảy ra khi tôi tạo một đường ống có thể phải thực hiện các lệnh docker (buildpush). Đầu tiên lỗi là docker không được cài đặt trên hệ thống. Vâng, dự kiến. Sau đó, tôi bắt đầu tìm kiếm và tìm hiểu cách tôi có thể chạy docker trong vùng chứa (chuyển 2 tập liên tục): docker run ... -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -p 49001:8080 jenkinsJenkins trong thùng chứa Docker (đường ống chạy docker)

Điều này chạy, nhưng có một số ngoại lệ. Có docker lệnh trong vùng chứa nhưng khi tôi cố gắng chạy nó, nó ném một ngoại lệ: docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory

Làm cách nào để khắc phục sự cố này? Cách chính xác để cài đặt Jenkins trong Docker và chạy Docker trong đó là gì? Tôi nghĩ có 2 cách:

  1. Người mà tôi đang làm - sử dụng ổ cắm
  2. tôi có thể tiếp xúc với các api Docker cho phép kết nối và chạy lệnh

Trên thực tế là nó có giá trị chạy Jenkins trong Docker? Tôi đã cố gắng để cài đặt các thiếu lib thủ công từ apt-get Nó hoạt động nhưng tôi biết rằng nó không phải là cách chính xác ..

+0

Sẽ https://www.vip-consult.solutions/post/easy-docker-swarm-jenkins-continuous-deployment-at-scale#content giúp? – VonC

Trả lời

6

Bạn phải cài đặt libltdl-dev để có được mọi thứ hoạt động chính xác. Tạo một Dockerfile trông như thế này:

FROM jenkins:latest 

USER root 
RUN apt-get update \ 
     && apt-get upgrade -y \ 
     && apt-get install -y sudo libltdl-dev \ 
     && rm -rf /var/lib/apt/lists/* 
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers 

USER jenkins 
# Here you can install some Jenkins plugins if you want 
+0

tôi đã tạo một hình ảnh giải pháp đơn giản https://hub.docker.com/r/jesusperales/jenkins-docker-run-inside/ –

Các vấn đề liên quan