作成物
github: https://github.com/tdzz1102/nextcloud-tls-docker
dockerhub: https://hub.docker.com/r/tdzz1102/nextcloud-tls
証明書をコンテナにマウントするだけでhttpsが有効化されます。使い方は上記リンクのいずれかに参考してください。
このイメージを使う(作る)理由
nextcloud公式イメージは、nextcloud本体とapache2から構成するものです。apache自体はtlsに対応できるが、公式イメージに活用されなかったです。httpsの対応策としてall-in-oneイメージもありますが、オレオレ証明書が使えません。しかも私的には使わない機能が多すぎて、煩わしい感じがします。
このイメージは、公式イメージに基づいて、組み込みapacheをsslモジュールを有効化して、与えられた証明書を使ってhttpsサービスを提供させるものです。
使い方
PATH_TO_CERT=/your/certificate.crt
PATH_TO_KEY=/your/private.key
証明書ファイルの場所を環境変数として指定し、
docker run -p 443:443 \
-d --name nextcloud-tls \
-v $PATH_TO_CERT:/cert/cert.pem \
-v $PATH_TO_KEY:/cert/key.pem \
-v nextcloud-data:/var/www/html \
tdzz1102/nextcloud-tls:20231217
でコンテナを起動します。
これで、nextcloud☁️へのhttps接続ができるようになりました!
作り方
FROM nextcloud
COPY ./default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf
RUN a2enmod ssl
提供したdefault-ssh.conf
が公式イメージからdocker cp
したもので、変更は以下の二行のみ:
SSLCertificateFile /cert/cert.pem
SSLCertificateKeyFile /cert/key.pem
余談
半年間も無事に使ってきたので、安心に使ってください。
sed
を使えば、コピペをせずdockerfileをより綺麗に書くべきです。また時間あれば改善します😃。