LoginSignup
4
0

Embulk v0.11.1 をdockerを使って実行する

Last updated at Posted at 2023-11-05

実現すること

  • embulkを実行するdockerイメージを作成する
  • ローカル環境の設定ファイルをマウントして、dockerイメージを実行する

前提条件

  • Mysqlはローカル環境に存在しているMysqlを使用する
  • Embulkバージョン:0.11.1
  • プラグインの読み込みはrubygemsを使用する

embulk.properties を作成する

以下の内容が記述されたファイルを作成する。

jruby=file:///usr/src/app/jruby-complete-9.4.5.0.jar

Dockerfile を作成する

# EmBulkの実行にはJavaが必要なため、Javaが含まれているベースイメージを使用します
FROM openjdk:8-jre-slim

# 作業ディレクトリを設定します
WORKDIR /usr/src/app

# install curl
RUN apt-get update && \
    apt-get install -y curl && \
    rm -rf /var/lib/apt/lists/*

# install jruby
RUN curl --create-dirs -o "./jruby-complete-9.4.5.0.jar" -L "https://repo1.maven.org/maven2/org/jruby/jruby-complete/9.4.5.0/jruby-complete-9.4.5.0.jar"
RUN chmod +x ./jruby-complete-9.4.5.0.jar

# Embulkをダウンロードして実行可能にする
RUN curl --create-dirs -o ./embulk -L "https://dl.embulk.org/embulk-latest.jar" && \
    chmod +x ./embulk

# install Ruby gems
COPY ./embulk.properties /root/.embulk/embulk.properties
RUN ./embulk gem install embulk -v 0.11.1 # Embulk と同じバージョンを指定
RUN ./embulk gem install msgpack -v 1.7.2
# RUN ./embulk gem install bundler # if you need Bundler
# RUN ./embulk gem install liquid  # if you need Liquid

# Embulkのプラグインをインストール
# 以下の例ではMySQLのプラグインをインストールしています
RUN ./embulk gem install embulk-input-mysql && \
    ./embulk gem install embulk-output-mysql

# Embulkの実行コマンドを設定します
ENTRYPOINT ["java","-jar","./embulk","run","./config/config.yml"]

Dockerfile からイメージを構築する

docker build ./ -t embulk-mysql-to-mysql --progress plain --no-cache 

config.yml の作成

in:
  type: mysql
  host: host.docker.internal
  user: root
  password: password
  database: dbname
  table: product
  select: "id, name, email"
out:
  type: mysql
  host: host.docker.internal
  user: root
  password: password
  database: dbname
  table: product2
  mode: insert

コンテナを実行する

docker run -v /usr/local/embulk/config:/usr/src/app/config embulk-mysql-to-mysql

参考にしたサイト

https://zenn.dev/dmikurube/articles/what-changes-in-embulk-v0-11
https://joker1007.hatenablog.com/entry/2021/05/28/021140

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0