社内で急遽WebDAVサーバを使った検証を行わなければならなかったので、どうせならと思い勉強中のDockerで構築してみました。
Docker便利ですね。
(初めて自分で考えてDockerfile書きました……。
WebDAVサーバ
とりあえず動けばいいのでApacheで。
LOCKも使えるようにしてみました。
Dockerfile
一旦httpdのイメージを使って、WebDAVサーバとしての設定をしてみました。
その後、それをコマンドとしてDockerfileに落とし込んでいます。
デフォルトがDigest認証になってたのでそれに合わせてます。
ビルド時にパスワードとかユーザとか変えられた方がいいかなと思い、user.passwd
を読み込んだりユーザ名変えられるようにしてます。
Dockerfile
FROM httpd:2.4
RUN sed -i \
-e 's/^#\(Include .*httpd-dav.conf\)/\1/' \
-e 's/^#\(LoadModule .*mod_auth_digest.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_dav.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_dav_fs.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_dav_lock.so\)/\1/' \
conf/httpd.conf \
&& mkdir -m 700 /usr/local/apache2/var \
&& chown daemon. /usr/local/apache2/var/ \
&& mkdir -m 700 /usr/local/apache2/uploads \
&& chown daemon. /usr/local/apache2/uploads/ \
&& sed -i \
-e 's/POST OPTIONS/POST OPTIONS LOCK/g' \
-e 's/Require user admin/Require user admin/g' \
conf/extra/httpd-dav.conf \
&& apt-get -y update \
&& apt-get -y install vim
ADD ./user.passwd /usr/local/apache2/
EXPOSE 80
CMD ["httpd-foreground"]
Docker Hub
作ったイメージですが、どうせならと思い、Docker Hubに登録してみました。
githubのリポジトリと連携すると自動でビルドしてくれるみたいですね。
ちょっとやってみました。
https://hub.docker.com/r/kxn4t/webdav-docker/
もし試されたい方がいらっしゃいましたら、上記URLをご参照願います。