1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

macOS CatalinaでDocker上のlilypondを動かして楽譜を作成する

Posted at

背景

基本的に以下の先行事例と同じ動機。

楽譜作成ソフトlilypondはmacOSの64bit版が存在しないためCatalina以降では実行できない。公式サイトには非公式バイナリも紹介されているが、いつまでメンテナンスされているかわからない。

ただし上記2サイトはdockerhubでイメージが管理され、いまいち現時点ではDockerfileの作り方もわからないDocker初心者にはよくわからないところもあったので、特に1つ目を参考にしつつ0から作れる方法を以下にメモ。

たぶんDocker hubを理解すればそちらの方が楽に思えるのだろうけれど。

環境はMacBook Air 13-inch 2018。

Dockerをインストールしてイメージを作成

Running Lilypondのページで紹介されているように Install Docker Desktop on MacからDockerのインストーラをダウンロードし、ドラッグアンドドロップでインストールしてDocker hubにアカウントを作成してログイン。ログインは必要ないかもしれない。

次に

% docker pull ubuntu

でイメージをダウンロードし、

% docker run -it ubuntu

でそのubuntuイメージからコンテナを作成・起動・アタッチ。オプション-itはそれぞれ標準入力利用可能と端末(TTY)利用可能。起動したままdettachしたい場合はCtrl+P, Ctro+Q。停止させたい場合はexit。

参考: Dockerコンテナの作成、起動〜停止まで - Qiita

lilypondをDockerコンテナ上にインストール

アタッチしたコンテナ上で
Kyle Baldwinさんのgithub
にあるように、

  • apt-get update
  • apt-get install locales
  • apt-get update
  • apt-get install wget
  • lilypondのバイナリをwget
  • shでインストール。
% sh lilypond-2.20.0-1.linux-64.sh

以上でこのコンテナ上では普通にlilypondが実行できるようになった。

lilypondがインストールされたUbuntuコンテナをイメージとして保存する

Ctrl+P, Ctrl+Qでコンテナからdettachする。

Docker ps で起動しているコンテナの一覧を表示し、ハッシュ値を得て、docker コミットしてdocker-lilypondという名前のimageを作成。

% docker commit <hash> docker-lilypond

参考: Dockerでcommitしてみる - Qiita

Dockerイメージ一覧にdocker-lilypondが表示された。

% docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker-lilypond     latest              b77f9ee3467e        4 days ago          303MB
ubuntu              latest              4e2eef94cd6b        2 weeks ago         73.9MB

Mac上からDockerコンテナ上のlilypondを実行して楽譜を取り出す

以下のコマンドで一回ごとにイメージを起動してlilypond を実行できる。カレントディレクトリ(pwd)を/app にマウントし、sample.lyファイルに対してlilypondコマンドを実行する。

% docker run --rm -v $(pwd):/app -w /app docker-lilypond lilypond sample.ly

すると端末にlilypondのメッセージが表示され、カレントにsample.pdfが作成される。このコマンドをファイルに保存してchmod +xして/usr/local/binに置く。

lilypond.sh
#! /bin/bash
docker run --rm -v "$(pwd)":/app -w /app docker-lilypond lilypond "$@"

以降は

lilypond.sh aaa.ly

でaaa.pdfが作成できる。 lilypond.sh --version のような実行も可能。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?