minato128 blog

minato128の公開メモ帳です。

docker-compose で ownCloud を立ててみた

gyazo.com

「チープなEC2インスタンスで ownCloud 立てて S3 接続すれば、Dropbox とかより安く運用できるのでは?😆」 *1 と思ったので試した。

試してみたかったこと / わかったこと

  • docker-compose で ownCloud を立てることで気軽に再構築できるようにする
  • S3 の view として使えるか?
  • 既にデータが存在する bucket に接続しても問題なく動作するのか?
    • 問題なし
    • List API 叩いているっぽい

手順

  1. EC2 Instance 作成
    1. セキュリティグループの 80/443 を開ける
  2. DNS設定追加
    1. example.minato128.com を作った example.ap-northeast-1.compute.amazonaws.com に向ける
  3. Install docker/docker-compose
  4. docker-compose.yml をコピー
    1. Installing with Docker :: ownCloud Documentation
  5. docker-compose.yml の書き換え
    1. HTTPS-PORTALのコンテナの設定を追加
      1. https://github.com/SteveLTN/https-portal
        1. Let's Encrypt から自動的に証明書を発行して反映してくれる
        2. https://qiita.com/c18t/items/c693d5bcda2e9b82e39b
      2. Nginx のデフォルトのCLIENT_MAX_BODY_SIZEが少ないので追加
        1. https://github.com/SteveLTN/https-portal#advanced-usage
  6. docker-compose up -d
  7. example.minato128.com から初回ログイン
  8. 管理画面から S3 接続設定
    1. Amazon S3 :: ownCloud Documentation

yaml の追加部分抜粋

volumes:
  files:
    driver: local
  mysql:
    driver: local
  backup:
    driver: local
  redis:
    driver: local
  # ここを追加
  org-minato-ssl-certs:

services:
  # ここを追加
  https-portal:
    image: steveltn/https-portal:1
    container_name: proxy-https-portal
    ports:
      - '80:80'
      - '443:443'
    links:
      - owncloud
    environment:
      DOMAINS: 'example.minato128.com -> http://dockerhost:8080/'
      CLIENT_MAX_BODY_SIZE: 0
      STAGE: 'production'
    volumes:
    - org-minato-ssl-certs:/var/lib/https-portal

*1:AWS内なのでS3転送料金がかからない