我有一個通過 docker 容器在 127.0.0.1:80 上運行的 UI。我通過運行良好的 Chrome 和 Postman Client 應用程式對此進行了測驗。當我嘗試從 Postman 客戶端應用程式匯出 GET 測驗用例并通過單獨的容器運行它時,我收到此錯誤:
GET 127.0.0.1:80 [errored]
connect ECONNREFUSED 127.0.0.1:80
這是我的碼頭工人撰寫檔案:
version: "3.7"
services:
web:
build: ui
ports:
- 80:80
depends_on:
- api
api:
build: app
environment:
- PORT=80
ports:
- 8020:80
test:
container_name: restful_booker_checks
build: test
image: postman_checks
depends_on:
- api
- web
這是我用于測驗用例的 docker 檔案:
FROM node:10-alpine3.11
RUN apk update && apk upgrade && \
apk --no-cache --update add gcc musl-dev ca-certificates curl && \
rm -rf /var/cache/apk/*
RUN npm install -g newman
COPY ./ /test
WORKDIR /test
CMD ["newman", "run", "OCR_POC_v2_tests.json"]
這是從 Postman 客戶端應用程式匯出的 json 檔案:
{
"info": {
"_postman_id": "5e702694-fa82-4b9f-8b4e-49afd11330cc",
"name": "OCR_POC_v2_tests",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "21096887"
},
"item": [
{
"name": "get",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "127.0.0.1:80",
"host": [
"127",
"0",
"0",
"1"
],
"port": "80"
}
},
"response": []
}
]
}
當我運行以下命令時,它也運行良好:
newman run OCR_POC_v2_tests.json
所以它只是在連接無法通過的docker中。
uj5u.com熱心網友回復:
docker-compose 創建一個將容器連接到的橋接網路。每個容器都可以通過它在網路上的服務名稱來尋址。
您正在嘗試連接到 127.0.0.1 或 localhost,在 docker 背景關系中,它就是test容器本身。
您需要連接到web,因此您的 URL 變為http://web:80/. 我不知道您需要如何更改匯出的 Postman 檔案才能完成此操作,但希望您能弄清楚。
另請注意,在橋接網路上,您使用容器埠進行連接。即在您的情況下,這將是埠 80web和api. 如果只需要從 docker 網路上的其他容器訪問容器,則不需要映射埠。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480094.html
