UbuntuにDocker Composeを使用してownCloud Infinite Scaleをインストールする方法

Docker Compose のインストールを完了し、コマンドを実行してdocker compose up -dも、ownCloud にアクセスできない場合があります。これは、Infinite Scale でよくある実際の障害パターンです。コンテナは存在しているものの、DNS、TLS、ストレージパス、または必要な環境変数の値が原因で、スタックが使用できなくなることがあります。

このガイドでは、ownCloudがシングルサーバー展開向けに文書化した、本番環境向けのDocker Composeアプローチを使用します。現在のownCloudのドキュメントページは9.0開発版ドキュメントとして公開されていますが、ダウンロード可能な本番環境向けサンプルは最新の安定版リリースを使用しており、現在は安定版8.2ブランチを指していると明記されています。この違いは重要です。開発ビルドを意図的に作成したい場合を除き、開発イメージタグを本番サーバーにコピーしないでください。

以下の設定は、HTTPS を使用したリバースプロキシの背後に Infinite Scale インスタンスを 1 つ配置したい家庭や小規模組織に適しています。Ubuntu LTS、Docker Engine、Docker Compose プラグイン、管理対象のドメイン、およびサーバーへの管理者アクセスを前提としています。ownCloud の運用例では、デフォルトで有効になっているサービスには約 4~6 GB の RAM を推奨しており、ownCloud ドメインが必須です。オプションのオフィス統合には、それぞれ独自のサブドメインが必要です。

始める前に:まずネットワークとストレージの問題を解決してください

Compose ファイルのダウンロードから始めないでください。まず、スタックが既に実行されている状態で修正するのが最も難しい項目を確認してください。

  • DNS:選択したホスト名(例: ocis.example.com)は、サーバーのパブリックIPアドレスに解決される必要があります。
  • ファイアウォールとNAT:インターネットに接続するシステムでは、リバースプロキシと証明書フローのためにTCPポート80と443が利用可能である必要があります。管理には通常、TCPポート22でのSSH接続が必要です。
  • 永続ストレージ: Dockerで管理されるボリュームは便利ですが、本番システムでは通常、構成データやユーザーデータのための明確なパスを用意することで、バックアップや容量計画が容易になります。
  • メール送信者: ownCloud のドキュメントに記載されている例では、SMTP_SENDERまだ動作中の SMTP リレーを設定していない場合でも、設定する必要があります。

これらの要件は、ownCloud Infinite Scaleサーバーの公式インストールガイドに記載されています。Docker自体については、古いディストリビューションパッケージに頼るのではなく、Dockerの最新のUbuntu Engineインストール手順とComposeプラグインの手順に従ってください。

1. DockerとDocker Composeを確認する

サーバー上で、まずオペレーティングシステムをアップデートし、次にDocker EngineとComposeプラグインが利用可能であることを確認してください。

sudo apt-get update && sudo apt-get upgrade
docker --version
docker compose version

重要なのは、これらのコマンドによって出力される特定のバージョン番号ではありません。両方のコマンドが正常に実行され、Compose が として利用可能であることを確認することですdocker compose。ownCloud のガイドでは、Ubuntu に組み込まれている Docker パッケージに依存するのではなく、Docker のリポジトリから Docker をインストールすることを推奨しています。Ubuntu に組み込まれている Docker パッケージは、バージョンが遅れる可能性があるためです。

Ubuntuターミナルに、Dockerの前提条件を確認するために使用されるdocker --versionコマンドとdocker compose versionコマンドが表示されています。
ownCloudスタックをダウンロードする前に、Docker EngineとDocker Composeプラグインがインストールされていることを確認してください。

2. 公式の安定版Composeサンプルをダウンロードする

ownCloudは、管理者に本番環境のスタックを一から構築させるのではなく、完全なComposeデプロイメント例を提供します。検証時点では、ドキュメントによると、現在の本番環境用ダウンロードは、stable-8.29.0のドキュメントがまだ開発段階であるため、ブランチに基づいているとのことです。

公式ワークフローではdeployments/examples/ocis_full、ディレクトリをダウンロードし、生成されたアーカイブをサーバーに転送して、 などのパスに展開します/opt/compose/ocis/ocis_full。アーカイブの正確な名前は安定版ブランチによって変更される可能性があるため、古いチュートリアルからファイル名をハードコーディングするのではなく、現在のownCloudドキュメントに示されているダウンロードリンクを使用してください。

解凍後、デプロイメントディレクトリに移動して内容を確認してください。

cd /opt/compose/ocis/ocis_full
ls -la

Compose ファイル、設定ディレクトリ、および.envサンプルに付属のファイルが表示されるはずです。既存の抽出済みサンプルを更新する場合は、.envまずバックアップを作成してください。ownCloud は、新しいパッケージを抽出すると既存のサンプルが上書きされる可能性があると警告します。

3. .env ファイルを慎重に設定する

初回起動時の問題のほとんどは、環境ファイルに起因します。.env展開したディレクトリ内でファイルを編集し、設定項目を慎重に順番に確認してください。

パブリックドメインを設定する

OCIS_DOMAIN既にサーバーに解決されているホスト名を設定してください(例:)。CollaboraまたはONLYOFFICEを有効にする場合は、ドキュメントに記載されているホスト名も設定してください。DNSレコードと異なるocis.example.comドメインをに使用しないでください。.env

TLSを準備する

インターネットに接続するデプロイメントの場合、公式の例では Traefik と Let's Encrypt を使用しています。TRAEFIK_ACME_MAIL管理している実際のメールアドレスを設定してください。ownCloud では、まず Let's Encrypt のステージング CA を使用して証明書の発行が正常に機能することを確認し、その後本番環境に切り替えることを推奨しています。これにより、トラブルシューティング中に Let's Encrypt のレート制限に達する可能性を低減できます。

データと設定ファイルの保存場所を選択してください

ホストにマウントされたストレージを使用する場合は、計画している永続パスを設定してくださいOCIS_CONFIG_DIR。OCIS_DATA_DIR基盤となるファイルシステムに十分な容量があること、およびバックアッププロセスに構成情報とデータの両方が含まれていることを確認してください。

SMTP送信者を設定する

最低限、 を定義してくださいSMTP_SENDER。通知を送信する準備ができたら、SMTP ホスト、ポート、ユーザー名、パスワード、認証方法、セキュリティ設定などをすべて追加できます。

テキストエディタに、OCIS_DOMAIN、TRAEFIK_ACME_MAIL、SMTP_SENDER、OCIS_CONFIG_DIR、およびOCIS_DATA_DIRを含むownCloudの.envファイルを表示しています。
中央の.envファイルは、ドメイン、証明書の連絡先メールアドレス、メール送信者、および永続ストレージのパスを制御します。

4. Composeの設定を検証し、スタックを起動します。

コンテナをプルして起動する前に、Composeに組み立てられた構成をレンダリングして検証するように指示してください。

docker compose config

これが失敗した場合は、構文エラーまたは不足している変数を修正してから続行してください。このチェックは、部分的に開始されたデプロイメントを診断するよりもはるかに高速です。

ownCloudのデプロイディレクトリにあるUbuntuターミナルで、docker compose configコマンドを実行して、構築したスタックを検証する準備をします。
起動前にdocker compose configを実行することで、構文や変数に関する問題を早期に検出できます。

構成が正常にレンダリングされたら、デタッチモードでデプロイメントを開始します。

docker compose up -d

Composeは必要なイメージを取得し、サンプルで定義されたサービスを起動します。初回実行時は、イメージのダウンロードや証明書の要求が必要となるため、時間がかかる場合があります。

ownCloudのデプロイメントディレクトリにあるUbuntuターミナルに、スタックを起動するために使用されたdocker compose up -dコマンドが表示されています。
docker compose up -d を使用して、設定済みの ownCloud Infinite Scale スタックを起動します。

最初の起動が失敗した場合は、簡単なものから難しいものへと順にトラブルシューティングを行ってください。

コンテナの状態を確認する

どのサービスが失敗したかを推測するのではなく、まずはComposeビューから確認してみましょう。

docker compose ps -a --format "table {{.Service}}	{{.State}}	{{.ID}}"

サービスが繰り返し終了するケースは、ブラウザのエラーよりも有用です。なぜなら、問題の原因を1つのコンテナに絞り込むことができるからです。

証明書の問題については、Traefikのログを確認してください。

ownCloudのガイドでは、HTTPSが機能しない場合はまずTraefikを確認することを推奨しています。一般的な原因としては、ACMEの連絡先メールアドレスが無効、ポート80/443が閉じている、またはDNSがNXDOMAINを返すか、間違ったIPアドレスを指しているなどが挙げられます。ACMEの問題を修正したら、公式の手順に従って、テストデータが失敗した証明書ボリュームのみを削除してください。すべてのボリュームを削除しないでください。

ownCloudサービスのログを確認してください。

コンテナIDを で検索しdocker compose ps、そのログを調べます。

docker logs -f <container_id>

初期化プロセスでは、初回実行時に初期設定を作成できます。ownCloudはComposeデプロイメントのコマンドパターンを文書化しているocis init || true; ocis serverため、設定が既に存在する場合は初期化はスキップされます。

docker compose down -v を安易に使用しないでください

デプロイメントを停止するには、以下を使用します。

docker compose down --remove-orphans

ボリュームを意図的に削除したい場合を除き、追加操作は行わないでください-v。ownCloudは、この操作によってデプロイメントデータが削除される可能性があることを明示的に警告しています。TLSトラブルシューティング中に使い捨て証明書ボリュームを1つ削除する必要がある場合は、そのボリュームを選択的に削除してください。

インストールが実際に完了したことを確認する方法

成功はdocker compose up -dチェック項目の1つに過ぎません。結果を4つのレベルで検証してください。

  1. DNS:公開ホスト名が正しいサーバーアドレスに解決されます。
  2. TLS:ブラウザは証明書の警告なしにHTTPS経由でサイトにアクセスします。Let's EncryptのステージングCAを意図的に使用している場合は、まずステージング証明書を検証してから、ドキュメントに記載されている手順に従って本番環境に切り替えてください。
  3. コンテナ: docker compose ps -a再起動や終了したサービスではなく、実行中のサービスを表示します。
  4. アプリケーション:設定済みのownCloud URLを開き、設定または取得した初期管理者認証情報でサインインし、フォルダを作成して、小さなテストファイルをアップロードできます。

新規導入の場合、ドキュメントによると、デフォルトの管理者ユーザー名は でadmin、パスワードは構成時に手動で設定するか、ドキュメントに記載されている起動ログ/リセット手順で取得できます。初期パスワードは速やかに変更し、既知のデフォルト認証情報で本番環境をインストールしたままにしないでください。

基本的なファイルサービスが正常に動作したら、オプションのコラボレーションコンポーネントやより高度な統合機能を追加してください。コアとなるシステムが正常に動作している状態でこれらの機能を追加することで、オフィススイート、外部IDプロバイダー、またはウイルス対策サービスの障害が、基本的なDNSやTLSの問題と混同されることがなくなるため、トラブルシューティングがはるかに容易になります。

安定展開のためのメンテナンスノート

アップグレードを行う前に、データと設定をバックアップし、バージョン固有の移行に関する注意事項をお読みください。ownCloudのドキュメントでは、通常のイメージ更新と、設定変更が必要となる可能性のあるアップグレードを区別しています。一般的なメンテナンス手順は、スタックを停止し、イメージをプルして、孤立したファイルのクリーンアップを実行しながら再起動することですが、バージョンを変更する前に、リリース固有のアップグレードガイドを確認することをお勧めします。

本番サーバーでは、ディスク使用量も監視してください。Dockerで管理するボリュームは導入が容易ですが、オペレーティングシステムとユーザーファイルが同じファイルシステムを共有している場合、ストレージ容量の増加に驚く可能性があります。大量のデータが想定される場合は、最初から専用のストレージパスを使用するか、ドキュメントに記載されているボリューム手順とコンテナユーザーの適切な所有権を使用して移行してください。

コメントを残す

PythonとSimple-Matrix-Bot-Libを使用してMatrix Botをセットアップする方法

PythonとSimple-Matrix-Bot-Libを使用してMatrix Botをセットアップする方法

PythonとSimple-Matrix-Bot-Libを使用してMatrixボットを構築し、認証とデプロイのオプションを比較し、コマンドをテストし、代わりにmatrix-nioを使用すべき場合を理解します。

Let's Encrypt SSLを使用してUbuntu 24.04にJitsi Meetをインストールする方法

Let's Encrypt SSLを使用してUbuntu 24.04にJitsi Meetをインストールする方法

DNS、ファイアウォールルール、公式リポジトリ、Let's Encrypt SSL、サービスチェック、NATトラブルシューティングを含むJitsi MeetをUbuntu 24.04にインストールします。

ownCloudデスクトップ同期クライアントで「SSL証明書の検証に失敗しました」というエラーを修正する

ownCloudデスクトップ同期クライアントで「SSL証明書の検証に失敗しました」というエラーを修正する

ownCloud Desktopの同期証明書エラーを修正するには、サーバーURL、証明書名と証明書チェーン、システムクロック、クライアントバージョン、および信頼済みCAストアを確認してください。

Ubuntu 24.04でNextcloudのRedisキャッシングを設定する方法

Ubuntu 24.04でNextcloudのRedisキャッシングを設定する方法

PhpRedis、APCu、ループバック専用のRedisサービス、および実践的な検証手順を使用して、Ubuntu 24.04上でNextcloud向けにRedisファイルロックと分散キャッシュを設定します。

Element Webの「イベントの復号化に失敗しました」というE2EEエラーを修正する

Element Webの「イベントの復号化に失敗しました」というE2EEエラーを修正する

デバイス認証、キーのバックアップ、リカバリキー、および紛失したルームキーを確認することで、メッセージ履歴を損なうことなく、Element Webの復号化エラーをトラブルシューティングします。

Nextcloudで二要素認証(2FA)を設定および適用する方法

Nextcloudで二要素認証(2FA)を設定および適用する方法

Nextcloudの2要素認証プロバイダーを有効にする方法、ユーザーまたはグループに対して2要素認証を強制する方法、復旧を準備する方法、ログインとクライアントアプリを検証する方法を学びましょう。

ZimbraでIPアドレスによる送信メールリレーを制限する方法

ZimbraでIPアドレスによる送信メールリレーを制限する方法

zimbraMtaMyNetworks を使用すると、Zimbra で認証されていない送信メールのリレーを信頼できる IP アドレスに制限できます。許可リストを安全に検査、更新、再読み込み、検証する方法を学びましょう。

NextcloudのPHPメモリ制限警告を修正する

NextcloudのPHPメモリ制限警告を修正する

Nextcloud の PHP メモリ制限を少なくとも 512M に設定し、適切な Web PHP 設定を見つけて、Apache または PHP-FPM を再起動し、警告が解消されたことを確認してください。

音声通話およびビデオ通話用のMatrix Coturn TURN/STUNサーバーの設定方法

音声通話およびビデオ通話用のMatrix Coturn TURN/STUNサーバーの設定方法

CoturnをSynapseと連携させて、Matrix WebRTC通話を設定します。共有認証情報、NAT、ファイアウォールポート、TLSオプションを設定し、従来のTURNとMatrixRTCおよびLiveKitを区別します。

NextcloudメールアプリをOAuth2認証で設定する方法

NextcloudメールアプリをOAuth2認証で設定する方法

Nextcloud MailをGmailまたはMicrosoft 365向けにOAuth2で設定し、IMAP/SMTPアクセスを確認し、リダイレクトの問題をトラブルシューティングし、制限事項を把握します。