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里面是大写的,只是域名不分大小写而已😂)