LoginSignup
2
4

More than 5 years have passed since last update.

Owncloud-dockerをRaspberry Pi3で動かす

Last updated at Posted at 2018-04-20

Dropboxのようなソフトウェアで著名なownCloudをラズパイ上のdockerで動かしてみます。

1. ownCloud用のコンテナー

owncloud-dockerserverでは、owncloud、db、redisと 3つのコンテナーを使用していますが、それぞれのベースイメージは以下のようになっています。

サービス owncloud db redis
コンテナー owncloud/server webhippie/mariadb webhippie/redis
ベースイメージ owncloud/base webhippie/alpine webhippie/alpine
ベースイメージ owncloud/ubuntu
ベースイメージ ubuntu:16.04 alpine:edge alpine:edge

これらをラズパイ用として作成することが目標となります。

2. owncloud/serverコンテナーの作成

owncloud/serverは、ubuntuからowncloud/ubuntuを作成し、owncloud/ubuntuからowncloud/baseを作成し、出来上がった owncloud/baseからowncloud/serverを作成していきます。

2.1 owncloud/ubuntuコンテナーの作成

まずowncloud/ubuntuをクローンして、ラズパイ用に修正してからビルドします。

git clone https://github.com/owncloud-docker/ubuntu.git

2.1.1 update-tools.shの修正

update-tools.shでwgetしている、dockerizegosuをラズパイ用に修正します。

dockerize

wget -O - https://github.com/jwilder/dockerize/releases/download/v0.6.1/dockerize-linux-armhf-v0.6.1.tar.gz | tar -C rootfs/usr/bin -xzvf -

gosu

wget -O rootfs/usr/bin/su-exec https://github.com/tianon/gosu/releases/download/1.10/gosu-armhf

2.1.2 Dockerfileの修正

Dockerfileをラズパイ用に修正します。

FROM armhf/ubuntu:16.04

2.1.3 owncloud/ubuntuコンテナーのビルド

ファイルを修正したら、owncloud/ubuntuコンテナーをビルドします。

bash update-tools.sh
IMAGE_NAME=owncloud/ubuntu ./hooks/build

2.2 owncloud/baseコンテナーの作成

owncloud/baseをクローンしてビルドします。

git clone https://github.com/owncloud-docker/base.git
cd base
IMAGE_NAME=owncloud/base:latest ./hooks/build

2.3 owncloud/serverコンテナーの作成

owncloud/serverをクローンしてビルドします。

git clone https://github.com/owncloud-docker/server.git
cd server
source .env
IMAGE_NAME=owncloud/server:${VERSION} ./hooks/build

.envファイルにVERSION=10.0.7と書かれていました。

3. webhippie/mariadbコンテナーの作成

webhippie/mariadbコンテナーは、alpine:edgeコンテナーをベースイメージとして作成した、webhippie/alpineコンテナーをベースイメージとしています。

ラズパイ用には、alpine:edgeに相当するコンテナーイメージを作成してから作業を進めます。

3.1 alpine:3.6.2コンテナーの作成

ラズパイ用のalpine:3.6.2が見当たらなかったので、公式からrootfsをダウンロードしてコンテナーを作成しています。Dockerfile を作成したディレクトリに公式からダウンロードしたrootfs を展開しておきます。

wget -O - https://dl-4.alpinelinux.org/alpine/v3.6/releases/armhf/alpine-minirootfs-3.6.2-armhf.tar.gz | sudo tar -C rootfs -zxvf -

Dockerfileはこんな内容です。

FROM armhf/alpine

ADD rootfs /

RUN apk update \
 && apk upgrade

CMD /bin/sh

これを alpine:3.6.2としてビルドします。

sudo docker build -t armhf/alpine:3.6.2 .

3.2 webhippie/alpineコンテナーの作成

何故かしらwebhippie/alpineは、dockhippie/alpineをクローンして作成していきます。

git clone https://github.com/dockhippie/alpine.git

クローンしたら、update-tools.shwgetしているtemplaterをラズパイ用に修正します。

https://dl.webhippie.de/misc/templater/master/templater-master-linux-arm-7

続けて Dockerfileを修正します。

最初に、ベースイメージをラズパイ用にします。

FROM armhf/alpine:3.6.2

次に、apk addしているs6の行を以下の内容に修正します。

    git gcc make skalibs-dev linux-headers musl-dev \
    libc6-compat && \

DockerfileENV行の上に以下の内容を追加します。

RUN cd /tmp \
 && git clone https://github.com/skarnet/skalibs \
 && cd skalibs \
 && ./configure \
 && make \
 && make install \
 && cd ..; rm -fr /tmp/skalibs

RUN cd /tmp \
 && git clone https://github.com/skarnet/execline \
 && cd execline \
 && ./configure \
 && make \
 && make install \
 && cd ..; rm -fr /tmp/execline

RUN cd /tmp \
 && git clone https://github.com/skarnet/s6 \
 && cd s6 \
 && ./configure \
 && make \
 && make install \
 && cd ..; rm -fr /tmp/s6

準備ができましたので、webhippie/alpineをビルドします。

bash update-tools.sh
IMAGE_NAME=webhippie/alpine ./hook/build

3.3 webhippie/mariadbコンテナーの作成

このwebhippie/mariadbも、dockhippie/mariadbをクローンして作成します。

git clone https://github.com/dockhippie/mariadb.git

クローンしたmariadbにあるsetuptemplaterの行を修正します。ファイルは、mariadb/rootfs/etc/s6/mariadb/setupになります。

/usr/bin/templater --debug --prefix mariadb \
  --output /etc/mysql/my.cnf \
  /etc/templates/my.cnf.tmpl

templaterのバージョンによって引数の扱いが変わっているようです。

ファイルを修正したら、webhippie/mariadbコンテナーをビルドします。

docker build -t webhippie/mariadb .

3.4 webhippie/redisコンテナーの作成

ここまで準備ができていますから、クローンしてそのままビルドしちゃいます。

git clone https://github.com/dockhippie/redis.git
cd redis
docker build -t webhippie/redis .

4. ownCloudの起動

目標としていた 3つのコンテナーを作成できましたので、docker-composeownCloud を起動します。

先に 2.3 owncloud/serverコンテナーの作成で、クローンしているowncloud-docker/serverディレクトリに移動してdocker-composeを実行します。

cd owncloud-docker/server
docker-compose up -d

5. ブラウザからのアクセス

無事にownCloudが起動できれば、ログイン画面が表示されます。ここで、先のowncloud-docker/serverディレクトリの.envファイルに管理者ユーザ
ーとパスワードがadminと書かれていますので、修正していなければユーザー:admin、パスワード:adminでログインできます。

ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin

ownCloud Dockerには、Docker images for Production usage と書かれていますが、実際に使用する場合には、もちろんこれらのユーザー名、パスワードなどは変更しておきましょう。

2
4
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
2
4