JavaScriptを有効にしてください

Gatlingをsbtから実行するコンテナを作る

 ·  ☕ 2 分で読めます · 👀... ページ閲覧数
    🏷️

概要

sbtコマンドを使ったGatlingの実行はjdkとsbtとscalaのインストールがそれぞれ必要のため、環境構築結構大変。

コンテナから実行できると楽なのでやってみる。その時のメモ

やってみる

今日時点でgatlingの最新版は3.6.1なのでそれを利用する。

Docker image の選定

openjdkをベースimageとしてscalaとsbtがインストールされた良さげなイメージがあるのでこれを使う。便利。。

tagは${openjdkのimage tag}_${sbtのバージョン}_${scalaのバージョン}の命名規則があるらしい。

sbtを使うためAdoptOpenJDK JDK 811のバージョンを指定する。

gatling3.6.1からscalaとsbtのバージョンをそれぞれ確認する

今回は8u302_1.5.5_2.13.6のTagのイメージを使うことにした。

構成

構成はこんな感じ。

サンプルは一から作るのめんどいのでこちら(gatling-sbt-plugin-demo)をそのまま使わせていただく。
今回はそのまるっとコピペした(submoduleでもよかったかも)。

.
├── Dockerfile
├── README.md
├── app
│   ├── build.sbt
│   ├── project
│   ├── src
│   └── target
└── docker-compose.yml

Dockefileの作成

sbt compileをしてimage構築すると起動するときのcompileが省略される。
(その分imageのサイズが大きくなるので一長一短な感じもする。。)

1
2
3
4
5
6
7
8
9
FROM hseeberger/scala-sbt:8u302_1.5.5_2.13.6

RUN mkdir /app
WORKDIR /app
COPY ./app .

RUN sbt compile

CMD ["sbt"]

docker-compose.yml の作成

Dockerfileでファイルをコピーしないときはvolumes外して使う。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
version: '3'

services:
  gatling-sample:
    build:
      context: .
    container_name: gatling-sample
    #volumes:
    #- ./:/app
    working_dir: /app
    command:
    - sh
    tty: true

tty: trueにしているのでdocker-compose upすると起動したまま何もしないコンテナが生まれる。

起動しているコンテナにアタッチしてコマンド実行してみる。

1
2
3
$ docker exec -it gatling-sample bash

$ sbt gatling:test
共有

BAMBi
著者
BAMBi
サーバサイド~インフラがメインでフロントも好きです。趣味はアニメ鑑賞、ゲーム、つまみ細工です。