概要
下記の理由から、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