DockerでDigdagサーバを動かす(クライアントの簡単な動作確認用、PostgreSQL不使用)

digdag コマンドやクライアントライブラリなどの動作確認のため、 手軽にリセットしたり捨てられたりする Digdag サーバがあると便利かも? と思って雑に用意してみた。


Dockerfile

FROM ubuntu:18.04

RUN apt update \
  && apt install -y --no-install-recommends \
       curl \
       openjdk-8-jre-headless \
  && curl -o ${HOME}/bin/digdag --create-dirs -L \
       "https://dl.digdag.io/digdag-0.9.39" \
  && mkdir ${HOME}/tasklog

適当なシェルスクリプト

#!/bin/bash

ENDPOINT=localhost:65432
CONTAINER_NAME=digdag_server_client_test
HOME_DIR=/root

case $1 in
  build)
    docker build -t digdag_server:test .
    ;;
  debug)
    docker run --rm -it --name $CONTAINER_NAME \
      -p 65432:65432 digdag_server:test \
      bash
    ;;
  up)
    docker run --rm --name $CONTAINER_NAME \
      -p 65432:65432 digdag_server:test \
      bash ${HOME_DIR}/bin/digdag server \
        --memory --bind 0.0.0.0 \
        --task-log ${HOME_DIR}/tasklog
    ;;
  down)
    docker kill $CONTAINER_NAME
    ;;
  push)
    pj=pj_test
    digdag push $pj --project . -e $ENDPOINT
    ;;
  task_start)
    pj=pj_test
    wf=wf_test
    digdag start $pj $wf --session "$(date "+%F %T")" -e $ENDPOINT
    ;;
esac