Tôi sử dụng Docker để triển khai dịch vụ Nextcloud. Đối với điều này, tôi sử dụng hình ảnh nextcloud-apache chính thức, proxy ngược Nginx, certbot và MariaDB. Không có gì đặc biệt, thực sự.

Phiên bản docker của tôi chạy ở chế độ bầy đàn. Tất cả các vùng chứa chạy cùng với trình quản lý trên cùng một máy chủ lưu trữ chỉ có một bản sao cho mỗi dịch vụ, (các) mạng lớp phủ tiêu chuẩn. Nhóm được bắt đầu bằng cách sử dụng một tệp soạn thảo tiêu chuẩn.

Thiết lập của tôi đã chạy ổn định trong nhiều tháng, cho đến đêm qua, khi nó bị hỏng một cách bí ẩn. Theo như tôi thấy thì không có bản cập nhật hoặc khởi động lại nào, không phải cho Hệ điều hành (Ubuntu Server LTS), Docker-CE hoặc bất kỳ hình ảnh nào (tôi thực hiện tất cả các bản cập nhật của mình theo cách thủ công định kỳ và chắc chắn tôi đã không thực hiện chúng lúc 4 giờ sáng đêm qua). Tôi đã truy tìm nguyên nhân gây ra vùng chứa Nextcloud (nhưng tôi nghĩ đây là sự cố Docker, do đó câu hỏi của tôi ở đây ...):

Nhật ký cho proxy ngược Nginx hiển thị dòng sau:

2022/04/06 20:16:45 [error] 10#10: *3 nextcloud-app could not be resolved (3: Host not found), client: 10.135.40.1, server: <redacted>, request: "GET / HTTP/1.1", host: "<redacted>"

Nginx không thể giải quyết máy chủ phụ trợ và ném Cổng 502 / Bad trở lại máy khách.

Tôi đã kiểm tra và tên máy chủ cho vùng chứa Nextcloud ("nextcloud-app") thực sự không được đăng ký trong DNS nội bộ của docker (có sẵn dưới 127.0.0.11 trong mỗi vùng chứa). Tôi có thể đăng nhập vào bất kỳ vùng chứa nào và kích hoạt yêu cầu DNS (sau khi chạy after apt-get update && apt-get install iputils-ping dnsutilsbên trong (các) vùng chứa), tên "nextcloud-app" không được giải quyết ở bất kỳ đâu. Thí dụ:

[email protected]:/var/www/html# nslookup nextcloud-app
Server:     127.0.0.11
Address:    127.0.0.11#53

** server can't find nextcloud-app: NXDOMAIN

Tất cả các tên vùng chứa khác sẽ giải quyết như bình thường. Giải quyết các địa chỉ bên ngoài cũng hoạt động. "nextcloud-app" là tên vùng chứa duy nhất không thể giải quyết được.

Tuy nhiên, tôi có thể ping đến và từ vùng chứa ứng dụng nextcloud bằng địa chỉ IP nội bộ của docker trực tiếp. Kết nối ở đó, chỉ có giải pháp DNS không thành công.

Tôi không biết làm thế nào để gỡ lỗi này thêm nữa. Tôi đã không chạm vào tệp compile.yml của mình trong tuần. Theo như tôi biết, không có gì thay đổi. Tuy nhiên, thiết lập đã ngừng hoạt động qua đêm.

Làm cách nào để buộc vùng chứa Nextcloud đăng ký tên máy chủ của chính nó tại DNS nội bộ của docker? Bất kỳ đề xuất được đánh giá cao.

answer

Tôi đã tìm ra giải pháp. Câu trả lời này dành cho anh chàng tội nghiệp có thể gặp phải vấn đề tương tự trong tương lai.

Hóa ra đó không phải là vấn đề của docker. Nextcloud đã chuyển sang chế độ bảo trì trong đêm (vì lý do vẫn chưa rõ, sẽ phải điều tra điều đó tiếp theo). Bằng cách nào đó mà hình ảnh docker Nextcloud không thể tự đăng ký trong DNS của Docker (do lỗi trong hình ảnh?) Khi ở chế độ bảo trì và tình hình bị bế tắc: Không có độ phân giải DNS, không có quyền truy cập Nextcloud thông qua proxy ngược -> không nhận thấy Nextcloud đang ở chế độ bảo trì -> ở chế độ bảo trì báo trước, không có phân giải DNS, ...

Giá mà tôi nghĩ đến việc kiểm tra xem Nextcloud có đang ở chế độ bảo trì hay không, nó có thể giúp tôi tiết kiệm vài giờ gỡ lỗi và vò đầu bứt tai. Việc đưa Nextcloud ra khỏi chế độ bảo trì chỉ là vấn đề trong vài phút. Lúc này cảm thấy hơi ngu ngốc. ;-)