我尝试使用Docker将ownCloud从8.2.2升级到10.0.9

正在尝试将正在运行的ownCloud在某个地方进行Docker化,并在迁移数据的同时更新到最新版本。

数据备份

从当前正在运行的服务器中提取文件和数据库。

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

将获取到的文件带回本地。

将其迁移到Docker上

基本的的docker-compose.yml

在升级过程中,对这个文件的image和volumes进行修改。(以下是最终状态) #实在有点笨拙
暂时是为了迁移准备的。。。

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

准备数据

在启动MySQL容器之前,将从鲑鱼备份的文件解压到old-data卷上,并重新还原数据库。

持续不断地更新

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公式变量。

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。
访问后,会弹出升级提示,点击即可。

不停地重复这个。

广告
将在 10 秒后关闭
bannerAds