环境:CentOS7
参考官方文档:https://github.com/nextcloud/docker
配置证书前提条件:
有站点域名,开放80及443端口。
编写docker-compose.yml
version: '3'
services:
app:
image: nextcloud:apache
restart: always
volumes:
- nextcloud:/var/www/html
environment:
- VIRTUAL_HOST=yunpan.linuxs.top
- LETSENCRYPT_HOST=yunpan.linuxs.top
- [email protected]
networks:
- proxy-tier
- default
proxy:
build: ./proxy
restart: always
ports:
- 80:80
- 443:443
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
volumes:
- certs:/etc/nginx/certs:ro
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- proxy-tier
letsencrypt-companion:
image: jrcs/letsencrypt-nginx-proxy-companion
restart: always
volumes:
- certs:/etc/nginx/certs
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- proxy-tier
depends_on:
- proxy
volumes:
nextcloud:
certs:
vhost.d:
html:
networks:
proxy-tier:
注意proxy是使用Dockerfile文件创建的,在docker-compose.yml同目录下创建proxy文件夹,然后编写两个文件:
mkdir proxy && cd proxy
vi Dockerfile,输入如下内容:
FROM jwilder/nginx-proxy:alpine
COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf
vi uploadsize.conf,输入如下内容:
client_max_body_size 10G;
启动容器:
docker-compose up -d
它会开始下载镜像,自动申请证书。等一段时间后,可以登录http://yunpan.linuxs.top了。
镜像nextcloud:apache可不写后面的:apache,默认就是apache版的,从下载过来的:lastest可以看到镜像ID是一样的。
docker-compose.yml文件参考:
https://github.com/nextcloud/docker/tree/master/.examples/docker-compose/with-nginx-proxy/mariadb/apache/proxy
因为个人使用,数据库选择SQLite,所以yml文件中删除了有关数据库的部分。