LoginSignup
0
0

UbuntuでHTTPサーバを用意してみる(wiremock, docker)

Last updated at Posted at 2024-01-12

記載日 : 2024/01/12

備忘録として、HTTPサーバを用意する手順を記載します。
なお、HTTPサーバは rodolpheche/wiremock のdocker imageを使って起動します。

環境

OS : Ubuntu 22.04
dockerインストール済
docker-composeインストール済
VSCodeインストール済(拡張機能からGit Graphをインストール済)
curlインストール済

ファイル構成

project
 |
 |- docker-compose.yml

作業 (計5分)

1. docker composeファイルを作成する (2分)

HTTPサーバを用意するにあたり、rodolpheche/wiremockのdocker imageを使ったdocker-compose.ymlファイルを作る。ファイルの記述は以下の通り。

version: '3'
services:
  http_server:
    image: rodolpheche/wiremock:latest-alpine
    container_name: http-server
    ports:
      - "8080:8080"

    restart: always

docker-compose.ymlファイルが容易で来たら、以下コマンドでFTPサーバを起動する。

docker compose up -d

2. HTTPサーバへのデータ登録 (2分)

以下のパスへデータ登録してみる。
 /testpath/data/1

以下curlコマンドを実行して、データ登録する。
rodolpheche/wiremockでは、データ登録するときにはhttp://~:8080/__admin/mappingsというパスへPOSTすれば良いらしい。

curl -X POST "http://localhost:8080/__admin/mappings"\
     -H "Content-Type: application/json"\
     -d '{"request":\
           {"method":"POST",\
             "urlPath": "/testpath/data/1",\
             "bodyPatterns":\
               [{"equalToJson":\
                 {"jsonrpc":1,\
                   "method":"get_value",\
                   "params":["a", "b"],\
                   "id":1}}],\
             "basicAuthCredentials":\
               {"username": "uname",\
                 "password": "P@ssw0rd"}},\
           "response":{\
             "status": 201,\
             "headers":{\
               "Content-type": "application/json"},\
             "jsonBody":{\
               "id": 1,\
               "OS": "Ubuntu",\
               "body":{\
                 "color": ["red", "blue", "green"],"style": "line"}}}}'

3. 動作確(データ取得)(1分)

HTTPサーバにリクエストを投げて、先ほど登録したデータを取得できるか確認する。
次のcurlコマンドを実行する。

curl -X POST http://localhost:8080/testpath/data/1 \
     -H 'Content-Type: application/json'\
     -u uname:P@ssw0rd\
     -d '{"jsonrpc": 1,"method": "get_value", "params": ["a", "b"], "id": 1}'

レスポンスに以下が返り、登録したデータが帰ってきたことが確認できる。

{"id":1,"OS":"Ubuntu","body":{"color":["red","blue","green"],"style":"line"}}

4. VSCodeのdocker(拡張機能)で Permission Denied エラーが出ることの対応

環境を用意した時に、"Got Permission denied while trying to connect to the Docker daemon socket"エラーが出て、状態が見れない状態になりました。

章 ”参考にさせて頂いたサイト” のサイトを参考にさせて頂き解決しました。
dockerグループへ自分のユーザを追加して動くようになりました。

# dockerグループへユーザを追加
$ sudo gpasswd -a USER_NAME docker

参考にさせて頂いたサイト

・wiremockのdocker image
https://hub.docker.com/r/rodolpheche/wiremock/tags

・VSCodeのDockerで、Permission Diniedが出た件の対応
https://www.eureka-moments-blog.com/entry/2023/09/24/222354
https://akamist.com/blog/archives/3536

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0