ownCloud部署之docker实现

ownCloud简介

ownCloud 是一个开源的云盘解决方案,用的是PHP(还不支持PHP7),性能一般也就够。支持3个数据库,本地的SQLite ,MySQL和PostgreSQL。本次部署中,将会使用MySQL。

镜像选取

ownCloud 这个解决方案比较成熟,已经有官方的docker镜像了,我们只是需要在官方的docker镜像上修改就好了。

加入Microsoft Office 文档支持

由于我的老大要求必须要支持在线预览MS文档,所以我们还需要对官方的镜像加入一些东西。具体内容就是安装libreOffice 以支持在线预览。

具体Dockerfile如下

FROM owncloud
MAINTAINER <HangoX liang.hanguang93@gmail.com>
RUN apt-get update && apt-get install -y libreoffice

由于使用的是Daocloud的stack,不支持在docker-compose 中build镜像,所以需要自己把owncloud的镜像先构建好才能在docker-compose使用

编写docker-compose.yml

带MYSQL版本:

version: '3.0'
services:
  owncloud:
    image: daocloud.io/hangox/owncloud:v9.1.4-2
    privileged: false
    restart: always
    ports:
    - 9999:80
    volumes:
    - /data/owncloud:/var/www/html
    links:
    - mysql:db

  mysql:
    image: library/mysql:5.6.35
    privileged: false
    restart: always
    ports:
    - 3306:3306
    volumes:
    - /data/mysql:/var/lib/mysql
    environment:
    - MYSQL_ROOT_PASSWORD=heygears-admin
    - MYSQL_USER=owncloud
    - MYSQL_PASSWORD=heygears-owncloud
    - MYSQL_DATABASE=owncloud


owncloud 中的镜像是我自己构建的,不公开的,需要填上自己的owncloud 镜像。
mysql 中的 端口不公开是最好的,这里公开只是为了方便外部调试而已。
mysql:db 中的db名字可以随便起,但是要记得,这个东西有大用

已有MySQL Docker容器

version: '3.0'
services:
  owncloud:
    image: daocloud.io/hangox/owncloud:v9.1.4-2
    privileged: false
    restart: always
    ports:
    - 9999:80
    volumes:
    - /data/owncloud:/var/www/html
  external_links:
    - <mysql容器名>:db


测试与访问

打开<主机ip>:9999 将会看到以下界面

这个时候mysql的网址就是刚才起的别名db了(其实在env里面是大写的,只是域名不分大小写而已😂)