2015-04-28 21 views
11

Tôi đang sử dụng hình ảnh nginx dựa trên dockerfile/ubuntu. Trên gắn liền với vỏ container Docker củaLỗi trình cắm: Không thể định vị gói git

docker exec -it <container_id> /bin/bash 

tôi muốn làm một git pull vì vậy tôi cố gắng cài đặt git nhưng apt là không thể tìm thấy gói:

[email protected]:/# apt-get install git 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
E: Unable to locate package git 

Làm sao chúng ta có thể cài đặt git từ hình ảnh đó và tại sao nó bị thiếu?


mèo /etc/apt/sources.list

deb http://httpredir.debian.org/debian wheezy main 
deb http://httpredir.debian.org/debian wheezy-updates main 
deb http://security.debian.org wheezy/updates main 
deb http://nginx.org/packages/mainline/debian/ wheezy nginx 

mèo /etc/apt/sources.list.d/*

cat: /etc/apt/sources.list.d/*: No such file or directory 

apt- bộ nhớ cache madison git

N: Unable to locate package git 
+0

'root @ ....' bạn đã là người dùng siêu, vì vậy sudo không tồn tại afaik. – Sean

+0

@SeanKenny cảm ơn, hãy để tôi thuật lại câu hỏi – Nyxynyx

+1

hiển thị 'cat/etc/apt/sources.list',' cat/etc/apt/sources.list.d/* 'và' apt-cache madison git' để chẩn đoán. –

Trả lời

29

Điều này xảy ra vì kho lưu trữ apt chưa được cập nhật, thực hành phổ biến là làm sạch kho lưu trữ apt và tệp tmp sau khi tạo hình ảnh, hình ảnh cơ sở của bạn có thể đang hoạt động.

Để sửa lỗi này, bạn sẽ muốn chạy apt-get update trước khi cài đặt git, một thói quen tốt để kết hợp các bản cập nhật và cài đặt lệnh cùng một lúc để phá bộ nhớ cache trên bản cập nhật nếu dòng cài đặt thay đổi:

RUN apt-get update && apt-get install -y git 

Sử dụng -y thuận tiện để tự động trả lời có cho tất cả các câu hỏi.

+0

Cảm ơn bạn đã làm việc! Btw, làm thế nào để chúng ta làm sạch các tập tin apt repo và tmp nếu chúng ta muốn xây dựng một hình ảnh mới? – Nyxynyx

+0

Vào cuối của Dockerfile của bạn, một cái gì đó như thế này: 'RUN apt-get sạch && rm-rf/var/lib/apt/lists/*/tmp/*/var/tmp/*' – Michael

+0

Chỉ cần lưu ý ở đây, làm sạch kho lưu trữ không giúp với kích thước hình ảnh trừ khi bạn làm sạch trên cùng một lớp (lệnh) mà bạn thêm các tập tin. btrfs sẽ lưu trữ các lớp với tất cả các tệp – Michael

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