コンテンツにスキップ

Docker を使用した Swagger Codegen

Dockerでの開発

すべての開発には、run-in-docker.sh を使用できます。このスクリプトは、ローカルリポジトリを Docker コンテナ内の /gen にマッピングします。また、~/.m2/repository を適切なコンテナの場所にマッピングします。

mvn package を実行するには

ターミナルウィンドウ
1
git clone https://github.com/swagger-api/swagger-codegen
2
cd swagger-codegen
3
./run-in-docker.sh mvn package

ビルド成果物が作業ディレクトリからアクセスできるようになりました。

ビルドが完了すると、run-in-docker.sh は swagger-codegen-cli の実行可能ファイルとして機能します。コードを生成するには、/gen (例: /gen/out) の下のディレクトリに出力する必要があります。例

ターミナルウィンドウ
1
./run-in-docker.sh help # Executes 'help' command for swagger-codegen-cli
2
./run-in-docker.sh langs # Executes 'langs' command for swagger-codegen-cli
3
./run-in-docker.sh /gen/bin/go-petstore.sh # Builds the Go client
4
./run-in-docker.sh generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.yaml \
5
-l go -o /gen/out/go-petstore -DpackageName=petstore # generates go client, outputs locally to ./out/go-petstore

スタンドアロンジェネレーター Dockerでの開発

スタンドアロンジェネレーター開発を参照してください。

Vagrant で Docker を実行する

前提条件: VagrantVirtualBox をインストールします。

ターミナルウィンドウ
1
git clone http://github.com/swagger-api/swagger-codegen.git
2
cd swagger-codegen
3
vagrant up
4
vagrant ssh
5
cd /vagrant
6
./run-in-docker.sh mvn package

公開されている事前構築済み Docker イメージ

Swagger Generator Docker イメージ

Swagger Generator イメージは、コード生成用のセルフホスト型ウェブアプリケーションおよび API として機能します。このコンテナは CI パイプラインに組み込むことができ、生成されたコードにアクセスするには、少なくとも 2 回の HTTP リクエストといくつかの Docker オーケストレーションが必要です。

使用例 (JSON のコマンドライン処理には jq がインストールされていることを前提としています)

ターミナルウィンドウ
1
# Start container and save the container id
2
CID=$(docker run -d swaggerapi/swagger-generator)
3
# allow for startup
4
sleep 5
5
# Get the IP of the running container
6
GEN_IP=$(docker inspect --format '{{.NetworkSettings.IPAddress}}' $CID)
7
# Execute an HTTP request and store the download link
8
RESULT=$(curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{
9
"swaggerUrl": "https://petstore.swagger.io/v2/swagger.json"
10
}' 'https://:8188/api/gen/clients/javascript' | jq '.link' | tr -d '"')
11
# Download the generated zip and redirect to a file
12
curl $RESULT > result.zip
13
# Shutdown the swagger generator image
14
docker stop $CID && docker rm $CID

上記の例では、result.zip に生成されたクライアントが含まれます。

Swagger Codegen CLI Docker イメージ

Swagger Codegen イメージはスタンドアロンの実行可能ファイルとして機能します。Homebrew を介してインストールする代わりに、または Java をインストールできない開発者や、インストールされているバージョンをアップグレードできない開発者向けに使用できます。

このイメージでコードを生成するには、ローカルの場所をボリュームとしてマウントする必要があります。

ターミナルウィンドウ
1
docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate \
2
-i https://petstore.swagger.io/v2/swagger.json \
3
-l go \
4
-o /local/out/go

(Windows では、${PWD}%CD% に置き換えてください)

生成されたコードは、現在のディレクトリの ./out/go の下に配置されます。