2017-06-30 32 views
6

Tôi có một thùng chứa Jenkins đang hoạt động, bây giờ tôi muốn xây dựng hình ảnh Docker bằng cách sử dụng đường ống, nhưng thùng chứa Jenkins luôn cho Docker không tìm thấy.Docker không tìm thấy khi xây dựng hình ảnh docker bằng cách sử dụng đường ống chứa Docker Jenkins

[simple-tdd-pipeline] Running shell script 
+ docker build -t simple-tdd . 
/var/jenkins_home/workspace/[email protected]/durable- 
ebc35179/script.sh: 2: /var/jenkins_home/workspace/simple-tdd- 
[email protected]/durable-ebc35179/script.sh: docker: not found 

Sau đây là cách tôi chạy hình ảnh Jenkins của tôi:

docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v 
/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock 
jenkins 

Và DockerFile của Jenkins hình ảnh là: https://github.com/jenkinsci/docker/blob/9f29488b77c2005bbbc5c936d47e697689f8ef6e/Dockerfile

Trả lời

7

Bạn đang thiếu khách hàng Docker. Cài đặt nó như thế này trong Dockerfile:

RUN curl -fsSLO https://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz \ 
    && tar xzvf docker-17.04.0-ce.tgz \ 
    && mv docker/docker /usr/local/bin \ 
    && rm -r docker docker-17.04.0-ce.tgz 

Source

+1

Tôi đã thêm tập lệnh ở trên và tạo dockerfile, lỗi này không thành công với lỗi bên dưới: curl: (23) Không thể ghi nội dung (0! = 16384) – kitko112

+0

Tôi có thể chạy lệnh ngay bây giờ, chỉ cần thay đổi người dùng làm người chủ trước lệnh curl. USER root – kitko112

+0

Có. Hoặc thêm lệnh trước dòng xác định lại người dùng – Robert

1

Bạn có thể sử dụng máy chủ của docker engine như trong này @Adrian Mouat blog của article.

docker run -d \ 
    -v /var/run/docker.sock:/var/run/docker.sock \ 
    -v $(which docker):/usr/bin/docker \ 
    -p 8080:8080 jenkins 

Điều này tránh có nhiều phiên bản bộ công cụ trên máy chủ lưu trữ và thùng chứa jenkins.

+0

Ánh xạ khối lượng tốt nhất là '-v/usr/local/bin:/user/bin', nếu không sẽ gây ra:' docker: Lỗi phản hồi từ daemon: Gắn kết bị từ chối: EOF. ' –

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