Like Share Discussion Bookmark Smile

J.J. Huang   2023-06-02   Docker Docker Compose   瀏覽次數:次   DMCA.com Protection Status

Docker Compose - BlackHole (黑洞服務器)

前言

常見與第三方服務做對接的時候,遇到沒有文件、格式錯誤…等等的常見問題。而在開發初期並無法立即搭建好環境提供給對方做呼叫。
此時使用BlackHole建置企一個服務,並提供對應的位址給對方,而在BlackHole裡面做的紀錄就是對方所帶的像是 -

  • URL Path
  • HTTP method
  • Headers
  • Body

舉例:

1
2
3
4
5
curl --location --request GET 'http://127.0.0.1:9999/test/' \
--header 'Content-Type: application/json' \
--data '{
"foo":"bar"
}'

紀錄:

1
2
3
4
5
6
7
8
9
10
11
12
GET /test/
Headers: {
host: '127.0.0.1:9999',
'user-agent': 'curl/7.87.0',
accept: '*/*',
'content-type': 'application/json',
'content-length': '19'
}
Data: {
"foo":"bar"
}
---: 0.763ms

Docker Image

使用nods.jsblackhole-server套件來建置,可以參考:blackhole-server

  • 使用DockerFile建置。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # OS: Debian Buster
    # Node.js: 14.4.0
    FROM node:14.4.0-buster

    RUN npm install -g blackhole-server

    # Listen port
    EXPOSE 9999

    # Run Node.js
    CMD [ "blackhole-server" ]

    説明:

    • node 14.4.0映像開始構建映像。
    • 安裝blackhole-server
    • 在鏡像中添加描述監聽9999端口。
    • 將容器的默認命令設置為blackhole-server
  • To Build:

    1
    $ docker build -t blackhole-server:v1 .

Docker Compose

  • docker-compose.yml
    1
    2
    3
    4
    5
    6
    7
    version: '2'

    services:
    blackhole:
    image: blackhole-server:v1
    ports:
    - "9999:9999"
    説明:
    • 版本定義為2
    • 定義services名稱為blackhole
    • 使用blackhole-server:v1映像。
    • 暴露端口9999(格式為HOST:CONTAINER)。

Run & Test

此處省略了Build Dockerfile的環節。

Other Docker Compose List

如需要找尋其他的 Docker Compose ,可以參考Docker Compose - 簡介的分享目錄。


註:以上參考了
Docker
blackhole-server