とりあえずコンテナ作ってみる
試行錯誤のための環境づくり
まだ、 Docker には十分慣れていないので(そして、以前試した時よりだいぶバージョンが上がっているので)、試行錯誤用のコンテナを作成する。
このコンテナでインストール手順の確率や、破壊的な変更などを試してみる。
Dockerfile を作成する
Docker を使って、オリジナルのコンテナを作成する場合は、何はともあれ Dockerfile
が必要になる。
作成にあたり、参考にしたのは以下のサイト。
- Dockerfile reference(公式
- Best practices for writing Dockerfiles(公式)
- 私家版 Dockerfile Pattern
- Dockerfile チートシート
とりあえず、以下の様なコンテナを作成してみた。
あとは、作成したコンテナの中で、ツールのビルド手順を確立していき、各コンテナの Dockerfile
を作成していく。
# # Dockerfile for Embryo Container. # # Pull base image. FROM ubuntu:14.04 # Author. MAINTAINER kenz_san # Install packages. RUN sed -i -e 's/\/\/archive.ubuntu.com/\/\/ftp.jaist.ac.jp/g' /etc/apt/sources.list && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y python-software-properties \ software-properties-common RUN add-apt-repository -y ppa:git-core/ppa && \ add-apt-repository -y ppa:mercurial-ppa/releases RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential \ byobu \ curl \ git \ mercurial \ openssh-server \ python-dev \ python-setuptools \ python-pip \ python-virtualenv \ unzip \ vim \ wget RUN curl -Lo /tmp/subversion_installer.sh http://opensource.wandisco.com/1.9/scripts/subversion_installer_1.9.sh && \ echo yn | bash /tmp/subversion_installer.sh # Create user. RUN useradd -d /home/embryo -m -s /bin/bash embryo && \ echo "embryo:embryo" | chpasswd && \ echo "embryo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \ echo -e "LANG='ja_JP.UTF-8'" > /etc/default/local # Setup sshd. RUN sed -i -e '/^UsePAM\s+yes/d' /etc/ssh/sshd_config && \ mkdir -p /var/run/sshd && \ /etc/init.d/ssh start && /etc/init.d/ssh stop && \ sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd # Set environment variables. ENV HOME /home/embryo # Define working directory. WORKDIR /home/embryo # EXPOSE 22 # Define default command. CMD ["/usr/sbin/sshd", "-D"]
こんな感じで。
開発に必要そうなパッケージは詰め込んで、SSH だけ有効にしている。
$ docker build -t kenz_san/embryo . $ docker run -d -i -t -p 22:22 kenz_san/embryo