高木のブログ

Docker環境でgruffのサンプルコードを動かす

· 192 words · 1 minutes to read
Tags: Ruby Gem Docker

gruff というグラフ描画用GemのサンプルコードをDockerで動かしてみるメモ

手順 🔗

必要なファイルの準備 🔗

Dockerfile、Gemfile、Gemfile.lockを準備する
Gemfile.lockの中身は空で良い

FROM ruby:2.7.3

RUN apt-get update -qq && apt-get install -y ghostscript

WORKDIR /app

COPY Gemfile Gemfile.lock /app

RUN bundle install -j 4
copy
# frozen_string_literal: true

source 'https://rubygems.org'

git_source(:github) {|repo_name| 'https://github.com/#{repo_name}' }

gem 'gruff'
copy
touch Gemfile.lock
copy
$ ls
Dockerfile      Gemfile         Gemfile.lock
copy

3つのファイルができたらOK

ビルド 🔗

$ docker build -t gruff_sample .
copy
$ docker run --rm gruff_sample ruby -v
ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux]
copy

サンプルコード 🔗

gruffリポジトリのREADME.md に載っているコード

require 'gruff'
g = Gruff::Line.new
g.title = 'Wow!  Look at this!'
g.labels = { 0 => '5/6', 1 => '5/15', 2 => '5/24', 3 => '5/30', 4 => '6/4',
             5 => '6/12', 6 => '6/21', 7 => '6/28' }
g.data :Jimmy, [25, 36, 86, 39, 25, 31, 79, 88]
g.data :Charles, [80, 54, 67, 54, 68, 70, 90, 95]
g.data :Julie, [22, 29, 35, 38, 36, 40, 46, 57]
g.data :Jane, [95, 95, 95, 90, 85, 80, 88, 100]
g.data :Philip, [90, 34, 23, 12, 78, 89, 98, 88]
g.data :Arthur, [5, 10, 13, 11, 6, 16, 22, 32]
g.write('exciting.png')
copy

実行 🔗

$ docker run --rm -v "$PWD:/app" gruff_sample ruby app.rb
copy
$ ls
Dockerfile      Gemfile         Gemfile.lock    app.rb          exciting.png
copy

exciting.pngという画像ファイルができている

生成された画像 🔗

exciting.png

リポジトリ 🔗

ytkg/gruff_sample - GitHub

Categories


Tags