LoginSignup
1
0

More than 1 year has passed since last update.

Mac環境でVivadoを動かしたい話②

Posted at

前回、Ubuntuのイメージにx11-appsパッケージをインストールして、xeyesコマンドが通るところまでを確認した。今回は、これらの作業をDockerfile化することでもう少しDockerの理解を深めたい。

コンテナのライフサイクル

前回試したのはpull, run, (stop), pruneであった。停止状態のコンテナに対して、docker image commitすることで、イメージかすることが可能だが、このフローは非推奨らしい。Dockerfileを作成し、これをbuildしてイメージ化するのが推奨手順とのこと。
container_lifecycle.png

Dockerfileの作成

以下のようなdockerfileを作成した。

From ubuntu
RUN apt-get update
RUN apt-get install -y x11-apps
#VOLUME ~/.Xauthority:/root/.Xauthority
ENV DISPLAY "<IPADDR>:0"
CMD ["xeyes"]

dockerfileと同じディレクトリで

% docker image build ./ -t ubuntu-x11
% docker container run -v ~/.Xauthority:/root/.Xauthority  ubuntu-x11

とすることで、前回と同様のことを実現できた。
コマンドの意味は、

  • ここにあるdockerfileでubuntu-x11と言うイメージを作ってね
  • ubuntu-x11と言うイメージからコンテナを立ち上げてね

Dockerfileでホストの.Xauthorityファイルをマウントしているつもりができておらず、xeyesを立ち上げた時に"No protocol specified"で怒られて、それの解決に時間がかかった。
結論から言うと、Dockerfile上でホストのパスを参照することはできない。このDockerfileを別の環境で利用した際に、同じパスにそのファイルがある保証がないから。言われてみればその通りだ。

と言うわけでDockerfile上でのマウントは行わず、コンテナ実行時に従来通りマウントするようにした。

最低限のdockerの操作について概観できたので、いよいよvivadoの立ち上げに移行する。

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