LoginSignup
7
13

More than 5 years have passed since last update.

Dockerで簡易WebDAVサーバを作る

Posted at

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

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13