普段はUbuntu 20.04LTSを使用しているのですがUbuntu 18.04LTSの環境が必要になったのでdockerで環境を整備した。
$ docker pull ubuntu:18.04
docker上でYocto Projectをビルドするためにlocaleを"en_US.UTF-8"に設定する。
また、docker上ではホストのユーザーを使用することと、パッケージをインストールすることもるので”sudo"コマンドのインストールとユーザー("hidemi")に"sudo"コマンドでパスワード無しの設定を盛り込んだ。
FROM ubuntu:18.04
MAINTAINER hidemi <hidemi@aquaxis.com>
# apt update
RUN apt-get update
RUN apt-get install -y sudo
RUN echo 'hidemi ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
RUN apt-get install -y locales
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
Dockerfileを使用してイメージを再作成する。
$ docker build -t utemp:18.04 .
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
utemp 18.04 628fb82af408 About an hour ago 115MB
ubuntu 18.04 56def654ec22 4 weeks ago 63.2MB
次のようにdockerを起動する。
起動する際にホストのhome、/etc/passwd、/etc/groupをマウントする。
$ docker run -v /home/hidemi:/home/hidemi -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -it -d --name u1804 --user 1000 utemp:18.04
起動して"docker ps"でdockerの状態を確認することができる。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7044df6ccdd8 utemp:18.04 "/bin/bash" 2 hours ago Up 2 hours u1804
次のようにdockerでコマンドを実行する。
$ docker exec -it u1804 /bin/bash
dockerの起動
$ docker start u8604
dockerの停止
$ docker stop u8604
dockerのコンテナが必要なくなったらコンテナを削除します。
$ docker rm u1804
dockerのリポジトリが必要なくなったらリポジトリを削除します。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
utemp 18.04 628fb82af408 About an hour ago 115MB
ubuntu 18.04 56def654ec22 4 weeks ago 63.2MB
$ docker rmi 628fb82af408