miyohideの日記

技術的なメモなどを記しています

2023年5月9日

sclevine/yj docker imageの使い方

YAMLJSONに変更するためのコマンドsclevine/yjのdocker imageの使い方。

hub.docker.com

例えば、以下のようなYAMLファイルがあるとして。

# SQLite. Versions 3.8.0 and up are supported.
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem "sqlite3"
#
default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  database: db/production.sqlite3

以下のコマンドを実行する。

$ docker run --rm -i sclevine/yj < database.yml

以下の結果が得られる。

{"default":{"adapter":"sqlite3","pool":"<%= ENV.fetch(\"RAILS_MAX_THREADS\") { 5 } %>","timeout":5000},"development":{"adapter":"sqlite3","pool":"<%= ENV.fetch(\"RAILS_MAX_THREADS\") { 5 } %>","timeout":5000,"database":"db/development.sqlite3"},"test":{"adapter":"sqlite3","pool":"<%= ENV.fetch(\"RAILS_MAX_THREADS\") { 5 } %>","timeout":5000,"database":"db/test.sqlite3"},"production":{"adapter":"sqlite3","pool":"<%= ENV.fetch(\"RAILS_MAX_THREADS\") { 5 } %>","timeout":5000,"database":"db/production.sqlite3"}}