Posted at

Dockerで簡易WebDAVサーバを作る

More than 1 year has passed since last update.

社内で急遽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をご参照願います。