1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu 16.04がインストールされたAlibaba Cloud上で、Dockerを使用してNextcloudを設定する方法

Posted at

このチュートリアルでは、Ubuntu 16.04をインストールしたAlibaba Cloud Elastic Compute Service (ECS)にNextcloudをインストールして設定します。

本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。

#前提条件

  • Alibaba Cloud Elastic Compute Service (ECS)を有効にし、有効な支払い方法を確認する必要があります。新規ユーザーの場合は、新規アカウントで300ドル~1200ドル相当のAlibaba Cloudクレジットを獲得できます。ECSインスタンスのセットアップ方法がわからない場合は、このチュートリアルまたはクイックスタートガイドを参照してください。ECSインスタンスには、少なくとも1GBのRAMと1つのCoreプロセッサが必要です。
  • Alibaba Cloudから登録されたドメイン名。すでにAlibaba Cloudまたは他のホストからドメインを登録している場合は、そのドメインネームサーバーレコードを更新することができます。
  • ドメイン名は、あなたのAlibaba Cloud ECSのIPアドレスを指している必要があります。
  • Alibaba CloudのVNCコンソールまたはPCにインストールされているSSHクライアントにアクセスします。
  • サーバーのホスト名を設定し、root権限を持つユーザーを作成します。

#サーバーの設定
パッケージのインストールを進める前に、以下のコマンドを使用してUbuntuシステムをアップデートしてください。このコマンドを実行するには、root 以外のユーザから sudo 権限でログインすることを忘れないでください。

# sudo apt update && sudo apt upgrade

Docker CEのインストールに対応したファイルを取得するためには、software-properties-commonパッケージが必要です。software-properties-commonをインストールするには、コマンドを実行します。

# sudo apt-get install software-properties-common -y 

Docker CEのインストールには、apt-transport-httpsが必要です。apt-transport-httpsをインストールするには、コマンドを実行します。

# sudo apt-get install apt-transport-https -y 

Docker CEのインストールにはca-certificatesが必要です。ca-certificatesをインストールするには、コマンドを実行します。

# sudo apt-get install ca-certificates -y 

Docker CEのインストールにはcurlが必要です。curlをインストールするには、コマンドを実行します。

# sudo apt-get install curl -y 

#Docker CEのインストール
Dockerコミュニティ版をインストールするには、以下の手順に従います。

ステップ1:

以下のコマンドを実行して、Docker用のGPGキーを追加します。

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

ステップ2:

以下のコマンドを実行して、GPGキーのフィンガープリントを確認します。

# sudo apt-key fingerprint 0EBFCD88

ステップ3:

以下のコマンドを実行してDockerリポジトリを追加します。

# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

ステップ4:

以下のコマンドを実行してシステムをアップデートし、追加されたリポジトリをロードします。

# sudo apt update

ステップ5:

以下のコマンドを実行してDockerをインストールします。

# sudo apt install docker-ce

ステップ6:

以下のコマンドを実行して、ユーザ名をdockerグループに追加します。

# sudo adduser aareez docker 

ステップ7:

現在のシェルセッションを閉じて、新しいセッションを開始します。そうしないと、dockerを実行することができず、パーミッションエラーが表示される可能性があります。

ステップ8:

以下のコマンドを実行して、dockerが正しく実行されているかどうかを確認します。

# docker run hello-world

#NextCloudのインストール
NextCloudとTalkをインストールするには、以下の手順に従ってください。

ステップ1:

次のコマンドを実行して、NextCloudをDockerにダウンロードしてインストールします。

# docker run -d -p 8080:80 nextcloud

###Docker composeをインストール
アップグレードによるデータの一貫性を保ち、再起動時にすべてのコンテナを自動的に処理するために、Docker composeを使用することができます。データベースコンテナとパーシステントボリュームを分けて設定を起動するのが簡単です。Docker composeをダウンロードしてインストールするには、以下の手順に従ってください。

ステップ1:

以下のコマンドを実行して、最新版のdocker composeをダウンロードしてインストールします。

# sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

ステップ2:

以下のコマンドでファイルのパーミッションを設定します。

# sudo chmod +x /usr/local/bin/docker-compose

ステップ3:

以下のコマンドで起動したコンテナの一覧を取得します。

# docker container ls —all

image.png

8080番ポートを使用しているコンテナを停止させます。そのためには、コンテナIDを取得し、以下の8baab990c424に置き換えてコマンドを実行します。

# docker stop 8baab990c424

ステップ4:

###オプション1 - SSLなし
SSL証明書をインストールしたい場合は、以下の手順をスキップして、オプション2 - SSLを使用して、本項の手順5から進めます。

docker-compose.yamlファイルを作成し、設定用の以下のテキストを貼り付けて保存します。テキストを貼り付ける前に、データベース名、パスワード、ユーザーを忘れずに設定してください。

# sudo nano docker-compose.yaml
version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=654321Ab
      - MYSQL_PASSWORD=654321Ab
      - MYSQL_DATABASE=ncdb
      - MYSQL_USER=aareez

  app:
    image: nextcloud
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    restart: always

以下のコマンドを実行して、Docker Composeの設定を起動します。

# docker-compose up -d

###オプション2 - SSLを使用した場合
ファイアウォールとポートの設定

ファイアウォールを有効にしている場合は、クラウドサーバーの Alibaba Cloud セキュリティグループで、ポート 80/tcp と 443/tcp の例外を追加するルールを定義する必要があります。ECSインスタンスを作成する際にこれらのポートを有効にすることができますが、これらのポートのブロックを解除し忘れた場合は、このガイドの手順に従うことができます: https://www.alibabacloud.com/help/doc-detail/25471.htm

リバースプロキシの設定

以下のコマンドで起動したコンテナの一覧を取得します。

# docker container ls --all

8080番ポートを使用しているコンテナを停止させます。そのためには、コンテナIDを取得し、以下の8baab990c424に置き換えてコマンドを実行してください。

# docker stop 8baab990c424

このステップでは、NextCloud Talkにアクセスするためのリバースプロキシを設定して、アドレスの末尾にポートを使わずにドメイン名でアクセスできるようにします。そのためには、docker-compose.ymlファイルを以下のテキストで更新する必要があります。

# sudo nano docker-compose.yml

次に、開いたファイルに以下のテキストを追加して保存します。

version: '3'

services:
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=654321Ab
      - MYSQL_PASSWORD=654321Ab
      - MYSQL_DATABASE=ncdb
      - MYSQL_USER=aareez

  app:
    image: nextcloud:apache
    restart: always
    volumes:
      - nextcloud:/var/www/html
    environment:
      - VIRTUAL_HOST=softpedia.xyz
      - LETSENCRYPT_HOST=softpedia.xyz
      - LETSENCRYPT_EMAIL=arslan@gmail.com
      - MYSQL_HOST=db
      - MYSQL_PASSWORD=654321Ab
      - MYSQL_DATABASE=ncdb
      - MYSQL_USER=aareez
    depends_on:
      - db
    networks:
      - proxy-tier
      - default

  proxy:
    build: ./proxy
    restart: always
    ports:
      - 80:80
      - 443:443
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    volumes:
      - certs:/etc/nginx/certs:ro
      - vhost.d:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    networks:
      - proxy-tier

  letsencrypt-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    restart: always
    volumes:
      - certs:/etc/nginx/certs
      - vhost.d:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - proxy-tier
    depends_on:
      - proxy

volumes:
  db:
  nextcloud:
  certs:
  vhost.d:
  html:

networks:
  proxy-tier:

ここで、proxy という名前のディレクトリを作成します。

# sudo mkdir proxy

作成されたプロキシディレクトリに移動します。

# cd proxy

ここでDockerfileというファイルを作成し、開いたファイルに以下のテキストを貼り付けて保存します。

# sudo nano Dockerfile
FROM jwilder/nginx-proxy:alpine

COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf

今すぐuploadsize.confを作成し、開いたファイルに以下のテキストを貼り付けて保存します。

# sudo nano uploadsize.conf
client_max_body_size 10G;

ホームディレクトリに移動します。

# cd ~

これでDocker composeの設定を起動します。

# sudo docker-compose up -d

ステップ5:

ブラウザを開き、http://your_domain.tld:8080 または http://ecs_ip_address:8080 に移動します。ページの読み込み中にエラーが表示された場合は、ファイアウォールの設定セクションに移動し、ポート8080を有効にします。リンクにアクセスすると、以下のような画面が表示されます。

image.png

ステップ6:

以下のフォームに必要事項を入力して、管理者アカウントを作成します。

image.png

ステップ7:

ストレージとデータベースのドロップダウンをクリックして、データベース情報を入力します。ホスト値を使用してください:db

image.png

データを入力したら、「セットアップを完了する」をクリックします。これでNextCloudのダッシュボードにリダイレクトされます。

image.png

#Talkをインストール
Talkは、テキストとビデオチャットを行うために提供しています。それはあなたが通話をするのに役立ちます。そのためには、以下の手順に従ってください。

ステップ 1:

右上のプロフィール写真のアイコンに移動すると、ドロップダウンメニューが開きます。下図のように+Appsをクリックします。

image.png

ステップ2:

ソーシャル&コミュニケーションセクションに移動します。アプリのリストが表示されます。下図のように開いたリストからトークを選択します。ダウンロードして有効にするオプションをクリックして、インストールを待ちます。

image.png

正常にインストールされた後、上部のメニューバーに新しいアイコンが表示されますので、それをクリックしてください。

image.png

以下のような画面が表示されます。左側に追加されたユーザーの一覧が表示されます。電話をかけたり、チャットをしたりすることができます。

image.png

アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?