Nếu Testcontainers thất bại khi kéo một image, các thiết lập withEnv của container sắp tạo không thể giúp gì. Chính daemon Docker thực hiện việc tải đó từ registry trước khi container tồn tại.

Thao tác thất bạiCấu hình proxy cần kiểm tra
Kéo imageDaemon Docker mà bài kiểm thử dùng và đường đi của nó tới registry
Tải xuống bên trong container đang chạyCác đầu vào mà ứng dụng hỗ trợ trong container đó
Bài kiểm thử Java kết nối tới Docker hoặc ứng dụngỨng dụng khách Java thực hiện kết nối đó

Với trường hợp thứ hai, thêm biến môi trường vào định nghĩa GenericContainer hiện có:

container
    .withEnv("http_proxy", "http://proxy.example:8080")
    .withEnv("https_proxy", "http://proxy.example:8080");

Nếu một lần tải xuống bên trong container được phép dùng điểm cuối HTTP công khai, hãy điền các giá trị đó từ danh sách proxy HTTP. Chương trình trong image phải đọc các biến đó. Chúng không biến một socket cơ sở dữ liệu bất kỳ thành lưu lượng proxy HTTP. Điểm cuối cũng phải truy cập được từ container: 127.0.0.1 của nó trỏ tới chính nó.

Với trường hợp thứ nhất, hãy tìm môi trường Docker mà Testcontainers thực sự dùng. Một daemon từ xa hoặc Docker Desktop có thể lấy cấu hình từ nguồn khác với dockerd cục bộ. Giữ các dịch vụ kiểm thử cục bộ và API Docker trên đúng tuyến đường dự định khi thêm một proxy mặc định rộng.

Bài viết liên quan