Dockerを使ったVespaのクイック・スタート

このガイドではDockerを使って1台のマシン上にVespaをインストールして起動する方法を説明します。

必要条件:

  • Dockerがインストールされていること。
  • Gitがインストールされていること。
  • オペレーティング・システム: macOSまたはLinux
  • アーキテクチャ: x86_64
  • 少なくとも2GBのメモリがコンテナのインスタンスに割り当てられていること。
  1. GitHubからVespaのサンプル・アプリケーションをcloneする:
    $ git clone https://github.com/vespa-engine/sample-apps.git
    $ export VESPA_SAMPLE_APPS=`pwd`/sample-apps
    
  2. VespaのDockerコンテナを起動する:
    $ docker run --detach --name vespa --hostname vespa-container --privileged \
      --volume $VESPA_SAMPLE_APPS:/vespa-sample-apps --publish 8080:8080 vespaengine/vespa
    

    volumeオプションで、事前にダウンロードしたソースコードにDockerコンテナ内の/vespa-sample-appsとしてアクセスできるようになります。 検索やフィード用のインタフェースにアクセスできるように、Dockerコンテナの外に8080ポートを公開します。 vespaの名前で同時に稼働できるDockerコンテナは1つまでです。必要あらば変更してください。

    上記のコマンドの具体的なステップに興味がある場合は、Dockerfile起動スクリプトを参照してください。

  3. 設定サーバが起動するのを待つ - 200 OKのレスポンスを待つ:
    $ docker exec vespa bash -c 'curl -s --head http://localhost:19071/ApplicationStatus'
    
  4. サンプル・アプリケーションをデプロイしてアクティベートする:
    $ docker exec vespa bash -c 'vespa-deploy prepare /vespa-sample-apps/basic-search/src/main/application/ && \
      vespa-deploy activate'
    
    さらなるサンプル・アプリケーションはsample-appsで見つけることができます。 アプリケーション・パッケージのアプリケーションの項目を参照してください。
  5. アプリケーションがアクティブであることを確認する - 200 OKのレスポンスを待つ:
    $ curl -s --head http://localhost:8080/ApplicationStatus
    
  6. ドキュメントをフィードする:
    $ curl -s -H "Content-Type:application/json" --data-binary @${VESPA_SAMPLE_APPS}/basic-search/music-data-1.json \
        http://localhost:8080/document/v1/music/music/docid/1 | python -m json.tool
    $ curl -s -H "Content-Type:application/json" --data-binary @${VESPA_SAMPLE_APPS}/basic-search/music-data-2.json \
        http://localhost:8080/document/v1/music/music/docid/2 | python -m json.tool
    
    この例ではドキュメントAPIを使っています。 大規模なデータを高速にフィードするにはJava Feeding APIを使ってください。
  7. クエリーとドキュメント取得リクエストを実行する:
    $ curl -s http://localhost:8080/search/?query=bad | python -m json.tool
    
    $ curl -s http://localhost:8080/document/v1/music/music/docid/2 | python -m json.tool
    
    ブラウザでlocalhost:8080/search/?query=badの結果を参照してください。 詳しくはQuery APIを参照してください。
  8. 終わったらクリーンアップする

    必要なくなった稼働中のコンテナを停止する:

    $ docker stop vespa
    

    必要に応じて、停止したコンテナを完全に削除する:

    $ docker rm vespa
    

次のステップ