0 Câu hỏi: Docker container chạy trên Virtualbox không thể thực hiện yêu cầu XHR đến tài nguyên trong mạng nơi làm việc

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang cố gắng viết một plugin WordPress và đang phát triển bằng Local by Flywheel. Phần mềm này về cơ bản tạo ra một máy ảo cho chính nó với các cài đặt cần thiết được cấu hình sẵn cho PHP và MySQL. Sau đó, nó khởi chạy hai container docker trong VM đó. Một cho Nginx, và cái kia không rõ ràng.

Khi tôi mở trình duyệt của mình, tôi có thể phát triển trên phiên bản WordPress của mình.

Tôi đang cố gắng tạo một plugin đi qua luồng OAuth. Để làm điều này, nó cần có khả năng thực hiện các bước điển hình mà OAuth yêu cầu, sử dụng một số điểm cuối. Khi tôi kiểm tra nhật ký PHP của mình, tôi thấy một lỗi:

[08-May-2019 14:42:42 UTC] Response Code ""
[08-May-2019 14:42:42 UTC] Headers []
[08-May-2019 14:42:42 UTC] Body ""
[08-May-2019 14:42:42 UTC] Response successful: {"errors":{"http_request_failed":["A valid URL was not provided."]},"error_data":[]}

Đối với mã sau:

function cm_sso_token_swap(WP_REST_Request $request)
{
    $authCode = $request->get_param('code');
    $tokenSwapResponse = wp_safe_remote_post(CM_SSO_TOKEN_ENDPOINT, array(
        'timeout' => 15,
        'headers' => array('content-type' => 'multipart/form-data'),
        'body' => array(
            'grant_type' => CM_SSO_GRANT_TYPE,
            'code' => $authCode,
            'redirect_uri' => $redirect_uri,
            'client_id' => $client_id,
            'client_secret' => $client_secret,
        ),
    ));

    var_dump($tokenSwapResponse);

    if (is_wp_error($tokenSwapResponse) || !strpos($tokenSwapResponse['body'], "SUCCESS") === 0) {
        error_log($tokenSwapResponse->get_error_message());
        error_log('Response Code ' . json_encode(wp_remote_retrieve_response_code($tokenSwapResponse)));
        error_log('Headers ' . json_encode(wp_remote_retrieve_headers($tokenSwapResponse)));
        error_log('Body ' . json_encode(wp_remote_retrieve_body($tokenSwapResponse)));
    }

    error_log('Response successful: ' . json_encode($tokenSwapResponse));

    return new WP_REST_Response(json_encode($request->get_params()));
}

Bất kể tôi sử dụng điểm cuối nào. Tôi cũng đã xác minh vấn đề bằng cách cố gắng POST lên trang web đối mặt công khai của chúng tôi, nó sẽ trả lại tiền phạt. Nhưng sau đó đăng lên một ứng dụng nội bộ hoàn toàn không liên quan sẽ trả về cùng một lỗi này.

Điều đó khiến tôi tin rằng Docker container /VM không được định cấu hình với DNS bên trong phù hợp mà máy chủ của tôi được định cấu hình.

Tôi có thể đưa exec vào shell của VM cũng như (các) thùng chứa docker.

Tôi có thể chạy các bộ chứa Docker trong trình bao VM theo cách mà chúng có các máy chủ tên chính xác không? Có đơn giản như một cài đặt mạng trong menu VM không? Tôi không chắc chắn về nơi hoặc những gì tôi sẽ cần phải làm ở đây để có được XHR của tôi để có thể nhận ra các điểm cuối nội bộ này!

    
0
0 Câu trả lời                              0                         
nguồn đặt đây