pukiwikiを動かすDockerfile

(100d) 更新

公開メモ

php に加えて、platex や plantuml を入れる

debian:stretch-slim に apache2 + php7 を入れ、さらに以下のパッケージを入れた。

www-data の uid, gid を適当な値に変えることで、ホスト側の pukiwiki フォルダの uid, gid と一致させた

メンテナンスが必要になることも多いので、Dockerfile の ENTRYPOINT は指定せず、 代わりに bash を起動するようなこともできるようにしている。

ソースファイル

Dockerfile

FROM debian:stretch-slim

RUN set -x && \
    apt-get update && \
    apt-get install -y gnupg wget && \
    echo "deb http://packages.dotdeb.org stretch all" > \
        /etc/apt/sources.list.d/packages.dotdeb.org.list && \
    wget -O- https://www.dotdeb.org/dotdeb.gpg | apt-key add - && \
    apt-get update && \
    apt-get install -y php php-mbstring && \
    apt-get install -y php-sqlite3 php-curl && \
    apt-get install -y texlive-lang-japanese texlive-latex-extra pdf2svg && \
    sed -i "s/www-data:x:33:/www-data:x:1000:/" /etc/group && \
    sed -i "s/www-data:x:33:33/www-data:x:1000:1000/" /etc/passwd && \
    wget http://sourceforge.net/projects/plantuml/files/plantuml.jar/download \
        -O /usr/local/bin/plantuml.jar && \
    mkdir -p /usr/share/man/man1 && \
    apt-get install -y default-jre graphviz && \
    apt-get purge -y gnupg && \
    apt-get autoremove -y && \
    apt-get clean && \
    set -u

EXPOSE 80

COPY start-apache2.sh /start-apache2.sh

# ENTRYPOINT ["/start-apache2.sh"]

start-apache2.sh

#!/bin/bash
source /etc/apache2/envvars
apache2 -D FOREGROUND

イメージの作成と使用

下の Dockerfile と start-apache2.sh があるフォルダーで、 次のようにしてイメージを作成した。サイズは 1.62GB とか。

LANG:console
$ docker build -t private/stretch-pukiwiki .

使うときは、

LANG:console
$ docker run -d -p1888:80 -v ~takeuchi/pukiwiki:/var/www/html private/stretch-pukiwiki /start-apache2.sh

のように、ホストの pukiwiki フォルダを /var/www/html に繋ぎ、 また、適当なポートを 80 番に繋ぐ。

これからやること

  • ホストの apache2 との連携
  • ssl や http2 の利用

Counter: 203 (from 2010/06/03), today: 1, yesterday: 4