0
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で死んだLilypondをDocker上で動かす

Posted at

背景

macOS Catalinaにおいて、32-bit アプリケーションが切り捨てられたことを受けてLilyPondが死にました。
ということでDockerを使って動かそうという話です。
使用したDockerfile等はseekworser/lilypond-dockerfileに登録してあります。

Implementation

基本的にはDocker image上でLilyPondを動かすだけですが、なるべく意識せずに動かせるように、

  • Docker image上に/lilypondディレクトリを作成
  • Host側のカレントワーキングディレクトリを/lilypondにマウントし、container起動時に/lilypond内でlilypondコマンドを実行

ということをしています。実際に使用したDockerfileは次の通りです。

Dockerfile
from ubuntu:bionic
copy entrypoint /entrypoint

run sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.jaist.ac.jp/pub/Linux/ubuntu/%g" /etc/apt/sources.list \
    && apt update \
    && apt -y install lilypond \
    && chmod +x /entrypoint

entrypoint ["/entrypoint"]
entrypoint
#! /bin/bash
cd /lilypond
lilypond "$@"

また、起動時にいちいちdockerコマンドを打つのは面倒なのでHost側のlilypondを書き換えておきます。(Host側にインストールしていたlilypondはアンインストールしておきます。)

lilypond
#! /bin/bash
docker run --rm -v $(pwd):/lilypond seekworser/lilypond "$@"

上記のファイルを作成して/usr/local/binに置き、chmod +xすれば完成です。
Screen Shot 2020-04-05 at 15.19.12.png

macOS Catalina上でlilypondが動きました!

やってみて

○ 元々、別でインストールしていたLaTeXのghostscriptとLilyPondのghostscriptが2つあって、参照がぐちゃぐちゃになっていた(一回それでハマった)ので、Docker上で環境を分離できたのはよかった。
○ 想定していたほど起動が遅いわけではない。

× Docker image上にLaTeXを別でインストールする関係で、Docker imageのサイズが1.3 GBくらいある。(確か元々はlocalのLaTeXが使えてた...はず)

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