(ヽ'ω`) < Moinmoin on CentOS6のDockerfile
(ヽ'ω`) < 初めてのDockerfile
Moinmoinのインストール手順を記事にしているときに、「あれ?この手順ってDockerfileに書けるんじゃない?」と気づいたので、Dockerfileの記述練習も兼ねて書いてみた。
(ヽ'ω`) < 中身
FROM centos:centos6 MAINTAINER tsugihagi ENV SITE_NAME Moinmoin Wiki on Docker ENV ADMIN_NAME admin RUN yum install -y httpd mod_wsgi tar; yum clean all WORKDIR /usr/local/src RUN curl -O http://static.moinmo.in/files/moin-1.9.7.tar.gz RUN tar xvzf moin-1.9.7.tar.gz RUN rm moin-1.9.7.tar.gz WORKDIR /usr/local/src/moin-1.9.7 RUN python setup.py install --force RUN cp /usr/share/moin/server/moin.wsgi /usr/share/moin RUN cp /usr/share/moin/config/wikiconfig.py /usr/share/moin RUN echo "WSGIScriptAlias / /usr/share/moin/moin.wsgi" > /etc/httpd/conf.d/moin.conf RUN echo "WSGIDaemonProcess moin user=apache group=apache processes=5 threads=10 maximum-requests=1000 umask=0007" >> /etc/httpd/conf.d/moin.conf RUN echo "WSGIProcessGroup moin" >> /etc/httpd/conf.d/moin.conf RUN echo "WSGISocketPrefix /var/run/moin-wsgi" >> /etc/httpd/conf.d/moin.conf RUN echo "sys.path.insert(0, '/usr/lib/python2.6/site-packages')" >> /usr/share/moin/moin.wsgi RUN echo "sys.path.insert(0, '/usr/share/moin')" >> /usr/share/moin/moin.wsgi RUN chown -R apache:apache /usr/share/moin RUN chmod -R ug+rwX /usr/share/moin RUN chmod -R o-rwx /usr/share/moin RUN echo " sitename = u\"$SITE_NAME\"" >> /usr/share/moin/wikiconfig.py RUN echo " page_front_page = u\"FrontPage\"" >> /usr/share/moin/wikiconfig.py RUN echo " superuser = [u\"$ADMIN_NAME\",]" >> /usr/share/moin/wikiconfig.py ENTRYPOINT apachectl -D FOREGROUND EXPOSE 80
上記の内容を適当なディレクトリ上でDockerfile
という名前で保存。
(ヽ'ω`) < イメージの作成
docker build
コマンドでイメージを作成する。タグ名はお好きなもので。
[root@localhost ~]# cd /tmp [root@localhost tmp]# vi Dockerfile ## (上記の内容を貼り付ける) [root@localhost tmp]# docker build --tag=test/moin . Uploading context 6.144 kB Uploading context Step 0 : FROM centos:centos6 ---> 68eb857ffb51 ...(省略)... ## 作成が完了したら docker imagesで確認 [root@localhost tmp]# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE test/moin latest 299bf7d7eae8 52 seconds ago 456.2 MB centos centos5 5a1ebaa356ff 4 weeks ago 484 MB centos centos7 70214e5d0a90 5 weeks ago 224 MB centos latest 70214e5d0a90 5 weeks ago 224 MB centos centos6 68eb857ffb51 5 weeks ago 212.7 MB [root@localhost tmp]#
(ヽ'ω`) < コンテナの起動
ENTRYPOINTでApacheをフォアグラウンドで起動しているので、ポートマッピングを指定して起動する。
# docker run -d -p 80:80 test/moin:latest
(ヽ'ω`) < ようこそMoinmoinへ
これで、
http://(ホストのIP)/
にアクセスすればMoinmoin Wikiの画面が表示される。
デフォルト設定では管理者名は"admin"となっているので、"admin"という名前のユーザを作成して、言語の設定を行う。
(ヽ'ω`) < オプション
docker build
コマンドの実行前Dockerfile内の以下のENV
の値を変更することで、多少のカスタマイズが可能。
- SITE_NAME - Wikiの名前。
wikiconfig.py
のsitename
の値となる - ADMIN_NAME - 管理者名。
wikiconfig.py
のsuperuser
の1つ目の値となる(複数不可)
(ヽ'ω`) < なんかすごいね
初めてDockerfileを書いて、イメージの作成から動作確認までしたけど、すんごい楽。
楽だし、なんかすごい。あいつら未来に生きてんな感がビシビシ出てる。
とはいえ、実運用に使おうとするなら色々調整が必要な部分があると思うので、あくまでお試し程度のDockerfileということで。