文章目录
- 先展(zhuang)示(Bi)成果
- 系统环境
- 安装docker和docker-compose
- 安装docker-compose
- 部署nextcloud
- 准备
- 开始
- 可能遇到的错误
- 测试nextcloud页面
- 安装httpie可能遇到的问题
- 添加域名和ssl证书
先展(zhuang)示(Bi)成果
系统环境
本文参考:https://blog.wangriyu.wang/2018/05-server-nextcloud.html
系统环境为CentOS 7.3,默认用户为root
阿里云的服务器
安装docker和docker-compose
CentOS下安装Docker请参考我的另一篇博客:
#查看Docker是否安装成功
$ docker info #如果已经启动 docker,会输出全局信息
$ docker images #查看已安装镜像
$ docker ps -a #已启动容器
安装docker-compose
$ yum -y install epel-release
$ yum -y install python-pip
$ pip install --upgrade --force-reinstall pip==9.0.3 #这里如果升级最新的,比如 10.0 以上的,下面安装 docker-compose 会报错
$ pip install docker-compose
$ docker-compose --version
部署nextcloud
准备
- 需要镜像:wonderfall/nextcloud和mariadb:10
- 主机需要安装nginx
开始
$ cd ~
$ docker pull wonderfall/nextcloud
$ docker pull mariadb:10
$ vi docker-compose.yml
粘贴以下内容
nextcloud:
image: wonderfall/nextcloud
container_name: nextcloud_web
links:
- nextcloud-db:nextcloud-db
environment:
- UID=1000
- GID=1000
- UPLOAD_MAX_SIZE=5G
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- CRON_PERIOD=15m
- TZ=Aisa/Shanghai
- ADMIN_USER=#登录账号
- ADMIN_PASSWORD=#登录密码
- DOMAIN=localhost
- DB_TYPE=mysql
- DB_NAME=nextcloud
- DB_USER=nextcloud
- DB_PASSWORD=#数据库 nextcloud 账号密码
- DB_HOST=nextcloud-db
volumes:
# 文件会放在宿主机的 `/docker/nextcloud` 目录,如果不存在会自动创建
- /docker/nextcloud/data:/data
- /docker/nextcloud/config:/config
- /docker/nextcloud/apps:/apps2
- /docker/nextcloud/themes:/nextcloud/themes
expose:
- 8888
ports:
# 宿主机端口:镜像端口
- 8888:8888/tcp
restart: always
nextcloud-db:
image: mariadb:10
container_name: nextcloud_db
volumes:
# 数据库文件会放在宿主机的 `/docker/nextcloud/db` 目录,如果不存在会自动创建
- /docker/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=#数据库 root 密码
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=#数据库 nextcloud 账号密码
restart: always
编辑完后保存退出,在docker-compose.yml同级目录执行:
$ docker-compose up -d
Creating nextcloud_db ... done
Creating nextcloud_web ... done
这里要注意一下,相应容器启动后还有一段配置时间,大概几分钟到十几分钟不等。我刚开始弄的时候,起完容器就去看网页能否打开,结果打不开,以为是打开的方式不对,直到后面看了一下日志才发现需要等…
$ docker ps -a // 可以看到容器已经起来
$ docker logs nextcloud_db // 查看数据库配置是否完成
$ docker logs nextcloud_web // 查看 nextcloud 是否配置完成
可能遇到的错误
错误
Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-qgLckU/pycparser/
解决:
$ pip install --upgrade setuptools
测试nextcloud页面
这里推荐安装httpie工具,方便测试http,如果nextcloud服务正常的话,应该会输出一个登录页面
$ yum install httpie
$ http localhost:8888
现在nextcloud网盘就搭建好了,通过ip:8888就可以访问网盘页面了,下一步添加域名解析
安装httpie可能遇到的问题
运行:
$ sudo yum install httpie
有错误提示:执行↓
$ pip uninstall urllib3
$ pip uninstall requests
$ pip uninstall chardet
$ pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3
执行:
$ http localhost:8888
提示:DEPRECATION: Uninstalling a distutils installed project (requests) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
解决办法执行:
$ pip install --ignore-installed six
添加域名和ssl证书