docker
Embulk

EmbulkのDockerコンテナを作ってみる

概要

下記の理由から、Embulkのdockerコンテナを作ってみたのでメモする。

  • Embulkを使う環境を簡単に用意したい
  • 他のメンバーでも設置を簡単にしたい
  • ホスト(Mac)は汚したくないので作って要らなくなったら削除できるDockerにしたい

コンテナを作る

Embulkがjavaのアプリケーションのため、
javaの公式コンテナをベースに構築を行うことにします。

まず、Dockerfileを定義する

Dockerfile
FROM java:8

# system update
RUN apt-get -y update && apt-get -y upgrade

# locale
RUN apt-get -y install locales && \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8

# timezone (Asia/Tokyo)
ENV TZ JST-9

# etc
ENV TERM xterm

# tools
RUN apt-get install -y vim git zip unzip less wget

# embulk
RUN curl -o /usr/local/bin/embulk --create-dirs -L "http://dl.embulk.org/embulk-latest.jar" && \
    chmod +x /usr/local/bin/embulk

WORKDIR /root
ENTRYPOINT ["/bin/sh", "-c", "while true; do echo hello world; sleep 1; done"]

イメージをビルドしてコンテナを起動してみる

ターミナル
## イメージ作成
$ docker build -t my/embulk .

## コンテナ起動
$ docker run -d --name java my/embulk

## コンテナへ接続
$ docker exec -it java bash

## javaのバージョン確認
root@0cdf3c285356:~# java -version
openjdk version "1.8.0_111"

## embulkのバージョン確認
root@0cdf3c285356:~# embulk --version
Embulk v0.8.32

docker-hubに登録

DockerHubにAUTOMATED BUILDを使ってDockerfileとコンテナを登録する
https://hub.docker.com/r/reflet/docker-embulk/

docker-composeで上記コンテナを使ってみる

docker-compose.yml
version: '2'
services:
  embulk:
    image: reflet/docker-embulk
    container_name: embulk
ターミナル
$ docker-compose up -d
$ docker-compose ps

参考サイト