使用Docker-compose安装NextCloud,并集成OnlyOffice、redis
使用Docker-compose安装NextCloud,并集成OnlyOffice、redis先安装Docker,参考 https://blog.csdn.net/flyhorstar/article/details/87599497安装docker-composesudo curl -L "https://github.com/docker/compos
先安装Docker,参考 https://blog.csdn.net/flyhorstar/article/details/87599497
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
不要忘记,把版本号换成最新的版本。查看最新版本:https://github.com/docker/compose/releases
配置docker-compose.ymal文件
docker-compose.yml内容如下(配置文件格式要求很严,不能随便动每一行的空格不能少也不能多):
注意:我的nextcloud用的是外置数据库,不是用的容器的,下面这个配置文件中不包括数据库。
services:
nginx:
container_name: nginx
hostname: nginx
image: nginx:latest
ports:
- 80:80
- 443:443
networks:
- cloud_net
restart: always
volumes:
- /docker/nextcloud:/usr/share/nginx/html
- /docker/nginx:/etc/nginx
- /docker/certs:/etc/certs
- /docker/nginx/log:/var/log/nginx
nextcloud_web:
image: nextcloud:apache
container_name: nextcloud_web
hostname: nextcloud_web
depends_on:
- redis
environment:
- UID=1000
- GID=1000
- UPLOAD_MAX_SIZE=10G
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- CRON_PERIOD=15m
- TZ=Aisa/Shanghai
- DOMAIN=你的域名
- DB_TYPE=mysql
- DB_NAME=你的数据库名
- DB_USER=你的数据库用户名
- DB_PASSWORD=你的数据库密码
- DB_HOST=nextcloud-db
ports:
- 9000:80/tcp
networks:
- cloud_net
volumes:
- /docker/nextcloud:/var/www/html
restart: always
redis:
image: redis:alpine
container_name: redis
hostname: redis
restart: always
networks:
- cloud_net
expose:
- 6379
restart: always
onlyoffice:
image: onlyoffice/documentserver
container_name: onlyoffice
hostname: onlyoffice
environment:
- REDIS_SERVER_HOST=redis
- REDIS_SERVER_PORT=6379
volumes:
- /docker/onlyoffice/data:/var/www/onlyoffice/Data
- /docker/onlyoffice/logs:/var/log/onlyoffice
restart: always
ports:
- 9001:80/tcp
networks:
- cloud_net
networks:
cloud_net:
如果你打算数据库也要在容器中,请参考下面的配置文件:
version: '3'
services:
nextcloud:
image: nextcloud:apache
container_name: nextcloud_web
depends_on:
- redis
environment:
- UID=1000
- GID=1000
- UPLOAD_MAX_SIZE=10G
- APC_SHM_SIZE=128M
- OPCACHE_MEM_SIZE=128
- CRON_PERIOD=15m
- TZ=Aisa/Shanghai
- DOMAIN=你的域名
- DB_TYPE=mysql
- DB_NAME=你的数据库名
- DB_USER=你的数据库用户名
- DB_PASSWORD=你的数据库密码
- DB_HOST=nextcloud-db
volumes:
- /docker/nextcloud:/var/www/html
expose:
- 7009
ports:
- 7009:80/tcp
restart: always
redis:
image: redis:alpine
container_name: redis
restart: always
expose:
- 6379
restart: always
onlyoffice:
image: onlyoffice/documentserver
container_name: onlyoffice
hostname: onlyoffice
environment:
- REDIS_SERVER_HOST=redis
- REDIS_SERVER_PORT=6379
volumes:
- /docker/onlyoffice/data:/var/www/onlyoffice/Data
- /docker/onlyoffice/logs:/var/log/onlyoffice
restart: always
expose:
- 9000
- 9001
ports:
- 9000:80
- 9001:443
links:
- db
db:
image: mariadb
restart: always
ports:
-3306:3306
volumes:
- /docker/mariadb/db:/var/lib/mysql
environment:
- MYSQL_DATABASE=你的数据库名
- MYSQL_ROOT_PASSWORD=你的数据库root用户的密码
- MYSQL_USER=你的数据库用户名
- MYSQL_PASSWORD=你的数据库密码
注:
- volumes,作用是,将宿主机的目录挂载到docker容器中,这样操作文件时,不用登录docker容器了,直接在宿主机操作就可以了。
- 如果你使用的是windows版本的docker, 挂载目录格式为:
volumes:
- d:/docker/nextcloud:/var/www/html
其中d盘为共享的目录。
创建和启动容器:
在docker-compose.yml文件所在目录,运行以下命令:
docker-compose up -d
如果要启动具体的容器:docker-compose up -d 容器名
命令完成后,就可以用http://宿主机IP:7009来访问nextcloud了。
如果运行docker-compose,提示权限不够,解决方法:
chmod +x /usr/local/bin/docker-compose
配置数据库
我这里使用的是外置数据库。
- 进入mysql:
mysql -u root -p
- 建立数据库
create database nextcloud;
- 建立数据库用户
create user '你的数据库用户名'@'%' identified by '你的数据库密码';
- 将数据库用户与数据库关联起来,并允许所有IP访问此数据库
GRANT ALL PRIVILEGES ON 你的数据库用户名 TO '你的数据库用户名@'%' IDENTIFIED BY '你的数据库密码' WITH GRANT OPTION;
- 刷新权限信息
flush privileges;
参数解释:
- nextcloud,代表对这个数据库有效,如果换成*.* ,代表对任意数据库任意表有效
- ‘%’ 允许任意IP访问数据库,如果换成’localhost’代表只允许本机访问
配置redis
如果doker-compose.yml添加了redis服务,需要编辑nextcloud的php配置文件来启用服务,配置文件路径是/docker/nextcloud/config/config.php
'memcache.local' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'redis', #如果是在本机就是localhost,如果是docker,要和Redis的名一致
'port' => 6379,
),
更多推荐
所有评论(0)