2017-03-22 33 views
7

Tôi có jenkins chạy bên trong vùng chứa và mã nguồn dự án trên github.Làm thế nào để gắn khối lượng docker với container jenkins docker?

Tôi cần chạy dự án trong vùng chứa trên cùng một máy chủ như jenkins, nhưng không phải là docker-in-docker, tôi muốn chạy chúng dưới dạng thùng chứa anh chị em.

đường ống của tôi trông như thế này:

  1. kéo nguồn từ github
  2. xây dựng hình ảnh dự án
  3. chạy container dự án

gì tôi ngay bây giờ được sử dụng Docker ổ cắm của máy chủ từ thùng chứa jenkins:

/var/run/docker.sock:/var/run/docker.sock 

Tôi có vấn đề khi Jenkins chứa gắn kết khối lượng với mã nguồn từ/var/jenkins_home/workspace/BRANCH_NAME dự án container:

volumes: 
- ./servers/identity/app:/srv/app 

tôi đang nhận được thư mục trống "/ srv/app" trong container dự án

Dự đoán tốt nhất của tôi là trình cố định cố gắng gắn kết nó từ máy chủ chứ không phải từ vùng chứa jenkins.

Vì vậy, câu hỏi đặt ra là: làm cách nào tôi có thể đặt rõ ràng vùng chứa mà từ đó tôi gắn kết ổ đĩa?

+0

Bạn đã giải quyết xong vấn đề này chưa? Tôi đang chạy vào một cái gì đó tương tự. –

Trả lời

1

thử:

docker run -d --volumes-from <ContainerID> <YourImage> 

nơi ID container là id của container mà bạn muốn cho dữ liệu mont từ.

Bạn cũng có thể tạo ra khối lượng, bằng cách:

docker volume create <volname> 

và gán nó cho cả hai container

volumes: 
- <volname>:/srv/app 
1

Chia sẻ vớ giữa Host và Jenkins là vấn đề của tôi bởi vì "/ var/jenkins_home" rất có thể là một khối lượng cho thùng chứa Jenkins.

Giải pháp của tôi đã cài đặt docker bên trong thùng chứa systemd mà không chia sẻ vớ.

docker run -d --name jenkins \ 
    --restart=unless-stopped \ 
    --privileged \ 
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ 
    -v jenkins-vol:/var/lib/jenkins \ 
    --tmpfs /run \ 
    --tmpfs /run/lock \ 
    ubuntu:16.04 /sbin/init 

Sau đó cài đặt Jenkins, Docker và Docker Soạn trên đó.

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