Dockerによるインストール#

Ubuntu22.04用のDebianパッケージを利用してDockerイメージを作る例を示す。なお、本稿によるコンテナの環境は以下のドキュメントにあるインストールをおこなったものと同等である。

Docker自体のインストールや使い方などは省略する。

Dockerfileのサンプル#

Dockerfile#
FROM ubuntu:22.04

# Installation
RUN apt-get update -y && apt-get install -y locales \
 && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG en_US.utf8

# Installation of libraries required for Manyo and Utsusemi packages
RUN apt-get update -y && apt-get install -y \
    wget \
    x11-apps \
    libgsl27 \
    libnexus1 \
    libhdf5-103 \
    libssl3 \
    libboost-system1.74.0 \
    libboost-filesystem1.74.0 \
    libboost-serialization1.74.0 \
    libboost-program-options1.74.0 \
    python3-matplotlib \
    python3-scipy \
    python3-pyside2.qtcore \
    python3-pyside2.qtgui \
    python3-pyside2.qtwidgets


# 1. Install Utsusemi Packages
RUN cd /tmp \
 && wget https://cdn.mlf.plus/ce/Utsusemi4/Downloads/installUtsusemi_FromDebianPackages.sh \
 && bash installUtsusemi_FromDebianPackages.sh \
 && rm -rf /var/lib/apt/lists/*

# 2. Set arguments on build
ARG USER_NAME=hoge
ARG DATA_DIR=/data

# 3. Set user account
RUN adduser ${USER_NAME}
RUN mkdir ${DATA_DIR}
WORKDIR /home/${USER_NAME}

# 4. Environment setting
RUN echo '\n# Utsusemi environment' >> /home/${USER_NAME}/.bashrc
RUN echo 'export PATH=${PATH}:/opt/mlfsoft/python-utsusemi/utsusemi/bin' >> /home/${USER_NAME}/.bashrc

build用サンプルスクリプト#

build_linux.sh#
#!/bin/bash
USER_NAME=${USER}
docker build \
       -t ubu22_utsusemi_amd64 \
       --build-arg USER_NAME=${USER} \
       ./

コンテナ起動用サンプルスクリプト#

起動用のスクリプト例を示す。

このスクリプトを走らせるフォルダに data フォルダと work フォルダがあり、それぞれMLFのデータを入れるフォルダ、作業フォルダとして使用することを想定している。 data フォルダにはコンテナ内で空蝉環境でのデフォルトの場所(環境変数 UTSUSEMI_DATA_DIR で指定)である /data にマウントされる。

run_linux.sh#
#!/bin/bash
PWD=$(cd $(dirname %0); pwd)

USER_NAME=${USER}
xhost local:
docker run -it --rm --net=bridge \
       -e DISPLAY \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       -v ${HOME}/data:/data \
       -v ${PWD}/work:/home/${USER_NAME}/work \
       -u ${USER_NAME} \
       ubu22_utsusemi_amd64 /bin/bash
run_macos.sh#
#!/bin/zsh
PWD=$(cd $(dirname %0); pwd)

docker run -it --rm \
       -e DISPLAY="$(hostname):0" \
       -v ${HOME}/.Xauthority:/home/${USER_NAME}/.Xauthority \
       -v ${PWD}/data:/data \
       -v ${PWD}/work:/home/${USER_NAME}/work \
       -u ${USER_NAME} \
       ubu22_utsusemi_arm64 /bin/bash

ビルドとコンテナ起動#

$ ./build_linux.sh
$ ./run_linux.sh

コンテナ起動後#

コンテナの環境は以下のインストールを行なったものと同等である。

上記のサンプルスクリプトでコンテナを起動しbash環境に入と、この時点で下記のようなアプリケーションがシェルから使えるようになっている。

Utsusemi Applications on Ubuntu Linux#

Utsusemiアプリケーション

説明

EnvironSetting

【初期設定】空蟬の各種設定を行う

Sequencer, Ana

SequenceEditorを起動する

M2Plot

M2Plot+を起動する

MPlot

MPlotを起動する

D4mat

【非弾性】D4MatSlicerを起動する

D4mat2

【非弾性】D4Mat2Slicerを起動する

最初に EnvironSetting を実行し初期設定を済ませておくこと。

$ EnvironSetting