LoginSignup
1
1

More than 5 years have passed since last update.

Dockerを使ってownCloudの8.2.2から10.0.9にアップグレードしてみた

Last updated at Posted at 2018-08-04

某所で動かしているownCloudをいい加減docker化しようとしてデータをマイグレードしながら現在の最新に更新した。

データのバックアップ

現在稼働している鯖から、ファイルとDBを引っ張ってくる。

  • ファイルのアーカイブ
$ cd /var/www/html
$ tar cvf ~/tmp/ownclouddata.tgz .
  • DBのバックアップ
$ mysqldump -u hoge -p owncloud > ~/tmp/owncloud.sql

取得したファイルをローカルに持ってくる。

Dockerに移す

基本のdocker-compose.yml

結果的にこのファイルのimageとvolumesを書き換えながら、バージョン上げて行く。(以下は最終の状態) #ベタだよなorz
ひとまず、マイグレーション用の暫定です。。。

docker-compose.yml
version: '3.1'

services:
        owncloud:
            #image: owncloud:9
            image: owncloud:10
            #build: oc9.0
            restart: always
            depends_on:
                - db
            ports:
                - 10080:80
            volumes:
                #- old-data:/var/www/old
                #- oc9.0-data:/var/www/oc9.0
                - oc9.1-data:/var/www/oc9.1
                - oc10.0-data:/var/www/html
            links:
                - db
        db:
            image: webhippie/mariadb:latest
            restart: always
            environment:
              - MARIADB_ROOT_PASSWORD=hoge
              - MARIADB_USERNAME=age
              - MARIADB_PASSWORD=hogehoge
              - MARIADB_DATABASE=owncloud
              - MARIADB_MAX_ALLOWED_PACKET=128M
              - MARIADB_INNODB_LOG_FILE_SIZE=64M
              - MARIADB_INNODB_LARGE_PREFIX=ON
              - MARIADB_INNODB_FILE_FORMAT=Barracuda
            volumes:
                - mysql-data:/var/lib/mysql

volumes:
        mysql-data:
            driver: local
        old-data:
            driver: local
        oc9.0-data:
            driver: local
        oc9.1-data:
            driver: local
        oc10.0-data:
            driver: local

データの準備

鯖からバックアップしてきたファイルをボリューム old-dataに展開する。MySQLのコンテナを起動して、DBをリストアしておく。

ひたすら更新

8.2.2→9.1 (ダメー)

公式のイメージでは8.2、9.1、10.0系しかないようで、9.0系がない。
8.2→9.1だとバージョンまたぎと言われるので、ここは9.1のイメージを作る。
一からかくのも面倒なので、公式のDockerファイルを利用して9.0系のイメージを作成した。

公式のDockerfileのOWNCLOUD_VERSION, OWNCLOUD_SHA256を以下のように更新。

owncloud/9.1/apache/Dockerfile
ENV OWNCLOUD_VERSION 9.0.11
ENV OWNCLOUD_SHA256 99b5bb5f799e2cd6275ec0a5c633e940318038b4009fc125a23275b8666d41ec

8.2.2→9.0, 9.0→9.1, 9.1→10.0

docker-composeで立ち上げた後、owncloudのコンテナに入る。docker exec -it コンテナ名 /bin/bash

その後、旧バージョンのdataディレクトリとconfig/config.phpをコピーする。

$ cp -rp ../{olddir}/data .
$ cp -p ../{olddir}/config/config.php config

コピーしたら、ブラウザからowncloudにアクセスする。
アクセスすると、アップグレードの案内でるのでポチッとする。

これをひたすら繰り返す。

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