我有NodeJS/TypeScript應用程式(github repo),當我運行script定義的package.json. 即,npm run start將啟動我的本地主機,我可以通過 POSTMAN 訪問端點。
我已經創建了 docker 影像(我是新手Docker,這是我的第一個影像)。在這里,我Error: connect ECONNREFUSED 127.0.0.1:7001在 POSTMAN 中遇到錯誤。
我注意到Listening on port 7001運行 docker 檔案時在終端中看不到訊息。這告訴我我在.Dockerfile.
腳步:
- 我使用
docker build -t <IMAGE-NAME> .我可以看到成功創建的影像創建了 docker影像。 - 我使用啟動容器
docker run --name <CONTAINER-NAME> <IMAGE-NAME> - 我也禁用
Use the system proxy了 POSTMAN 中的設定,但沒有運氣。
細節:
- 包.json 檔案
"scripts": {
"dev": "ts-node-dev --respawn --pretty --transpile-only src/server.ts",
"compile": "tsc -p .",
"start": "npm run compile && npm run dev"
}
terminal我運行時的回應npm run start(這是成功的)

Dockerfile
#FROM is the base image for which we will run our application
FROM node:12.0.0
# Copy source code
COPY . /app
# Change working directory
WORKDIR /app
# Install dependencies
RUN npm install
RUN npm install -g typescript
# Expose API port to the outside
EXPOSE 7001
# Launch application
CMD ["npm", "start"]
- 運行 docker 命令后的回應

- GitHub 存盤庫結構

uj5u.com熱心網友回復:
您是否有任何機會忘記將容器埠映射到主機埠?
docker run --name <CONTAINER-NAME> -p 7001:7001 <IMAGE-NAME>
該-p做的埠暴露在網路的伎倆。左側的數字是容器埠(Dockerfile 上公開的 7001),第二個是主機上的目標埠。您也可以將其設定為其他可用埠。例如:-p 7001:3000在 http://localhost:3000 上公開
查看有關網路的Docker檔案
uj5u.com熱心網友回復:
最后,我能夠通過兩件事來完成這項作業:
- 使用@Dante 的建議(如上所述)。
- 更新我
.Dockerfile的以下內容:
FROM node:12.0.0
# Change working directory
WORKDIR /user/app
# Copy package.json into the container at /app
COPY package*.json ./
# Install dependencies
RUN npm install
RUN npm install -g typescript
# Copy the current directory contents into the container at root level (in this case, /app directory)
COPY . ./
# Expose API port to the outside
EXPOSE 7001
# Launch application
CMD ["npm", "run", "start"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406547.html
標籤:
