記載日 : 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