docker image は、 kanetsugu2015/athrill_asp3
があるが、 athrill 本体以外もいろいろ入っていてでかい。
Dockerfile も公開されていないので、自分でミニマムな環境を作っていく。
環境
- OS: Windows 10 Pro
- docker: Docker version 18.09.1, build 4c52b90
必要な作業の確認
手作業での環境構築
ベースは debian:buster-slim
で行きます。
docker pull debian:buster-slim
docker run -it --rm debian:buster-slim
以降は docker container 内での作業。
apt-get update
apt-get -y upgrade
# athrill のダウンロード・ビルドに使うパッケージたち
apt-get install make gcc git
# ソースのクローン
git clone https://github.com/tmori/athrill.git /athrill
# make
cd /athrill/trunk/src/build/target/linux_v850e2m/
make
cd /athrill/trunk/src/build/target/linux_v850esfk3/
make
cd /athrill/trunk/src/remote/remote_cui_client/
make -f Makefile.linux
動作確認
cd /athrill/sample/os/asp3/OBJ/
../../../../bin/linux/athrill2 -c1 -i -m memory.txt -d device_config.txt asp
...(略)
OK.
必要なファイル群の確認
athrill
, athrill2
, athrill_remote
に必要なライブラリを特定する。
# ldd athrill
linux-vdso.so.1 (0x00007ffc3871c000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f602747c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f60272bb000)
/lib64/ld-linux-x86-64.so.2 (0x00007f602d43e000)
# ldd athrill2
linux-vdso.so.1 (0x00007ffcb0fb4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f0a84231000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0a84070000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0a8997f000)
# ldd athrill_remote
linux-vdso.so.1 (0x00007ffe5dfaf000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc57d2f2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc57d131000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc57d31e000)
この辺をコピーすればよいはず。 ...と思ったが、debian:buster-slim
にはすべてそろっていた。
Dockerfile の作成
じゃぁ先ほどの手順を Dockerfile
に落とし込んでいきます。
# ビルド環境を構築してビルド
FROM debian:buster-slim as build-env
LABEL maintainer "mikoto2000 <mikoto2000@gmail.com>"
LABEL version="d7db0e00cc67932a8385c56bebbfcf07a9f87b75"
LABEL description "athrill: d7db0e00cc67932a8385c56bebbfcf07a9f87b75"
RUN apt-get update && apt-get -y install \
make \
gcc \
git \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/tmori/athrill.git /athrill \
&& cd /athrill \
&& git checkout d7db0e00cc67932a8385c56bebbfcf07a9f87b75 \
&& cd /athrill/trunk/src/build/target/linux_v850e2m/ \
&& make \
&& cd /athrill/trunk/src/build/target/linux_v850esfk3/ \
&& make \
&& cd /athrill/trunk/src/remote/remote_cui_client/ \
&& make -f Makefile.linux
# 実行環境を構築してビルド環境からバイナリをコピー
FROM debian:buster-slim
LABEL maintainer "mikoto2000 <mikoto2000@gmail.com>"
LABEL version="d7db0e00cc67932a8385c56bebbfcf07a9f87b75"
LABEL description "athrill: d7db0e00cc67932a8385c56bebbfcf07a9f87b75"
# build-env から必要なファイルをコピー
COPY --from=build-env \
/athrill/bin/linux/athrill \
/usr/local/bin
COPY --from=build-env \
/athrill/bin/linux/athrill2 \
/usr/local/bin
COPY --from=build-env \
/athrill/bin/linux/athrill_remote \
/usr/local/bin
ビルドします。
cd /PATH/TO/Dockerfile
docker build -t mikoto2000/athrill:20190121 .
しばらく待っているとイメージが出来上がるはず。
動作確認
cd /PATh/TO/athrill/sample/os/asp3/OBJ
docker run -it --rm -v "$(pwd):/asp3" --workdir "/asp3" mikoto2000/athrill:20190121 athrill -i -m memory.txt -d device_config.txt asp
...(略)
動いた、OK.
サイズ比較
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mikoto2000/athrill 20190121 fbdac9b0c9ef 8 minutes ago 71.5MB
kanetugu2015/athrill_asp3 ver4.0 e3faeec7fa1a 5 weeks ago 1.59GB
うん、いい感じじゃないでしょうか?
0 件のコメント:
コメントを投稿