利用docker-compose快速部署——以Cloudreve为例
BobAnkh published on
3 min, 401 words
本篇文章主要介绍如何使用docker-compose及一系列配套工具,快速部署一个https访问的网站,以Cloudreve为例。
准备工具
首先需要安装docker与docker-compose。可以自行安装,也可以使用此处提供的一个脚本docker.sh用于快速安装两者,请自行下载并谨慎使用,如有问题,概不负责。
搭建Nginx-proxy
负责自动发现网站时更新Nginx设置并使用letsencrypt进行SSL证书申请
使用下面这个项目进行相关搭建:
git clone --recurse-submodules https://github.com/evertramos/nginx-proxy-automation.git proxy
执行一个自动化配置的脚本:
cd proxy/bin
./fresh-start.sh
如此则完成了3个相关容器的构建运行,此后也可以自行根据docker-compose.yml文件进行修改和运行相关服务
需要使用该服务时,只需要在你自己的docker容器运行或docker-compose编排的时候,附带上以下这些环境变量即可(其中NETWORK与自己的设置有关,可依据情况修改):
VIRTUAL_HOST=your.domain.com
LETSENCRYPT_HOST=your.domain.com
LETSENCRYPT_EMAIL=your.email@your.domain.com
NETWORK=proxy
部署Cloudreve
编写以下的docker-compose.yml文件:
version: '3'
services:
cloudreve:
image: xavierniu/cloudreve:latest
container_name: cloudreve
restart: unless-stopped
env_file:
- ./cloudreve.env
volumes:
- ${CLOUDREVE_UPLOADS}:/cloudreve/uploads
- ${CLOUDREVE_CONF}:/cloudreve/config
- ${CLOUDREVE_DB}:/cloudreve/db
- ${CLOUDREVE_AVATAR}:/cloudreve/avatar
- /byr/byr:/byr
expose:
- ${CLOUDREVE_PORT}
environment:
VIRTUAL_HOST: ${VIRTUAL_HOST}
LETSENCRYPT_HOST: ${LETSENCRYPT_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}
VIRTUAL_PORT: ${CLOUDREVE_PORT}
networks:
default:
external:
name: ${NETWORK:-proxy}
在.env
文件中放置入相关的包括对应volume挂载地址、网址、邮箱、端口等环境变量设置,并创建cloudreve.env
文件用于给Cloudreve容器内部提供所需的环境变量,内容如下:
PUID=0
PGID=0
TZ=Asia/Shanghai
其中,PUID和PGID分为是使用命令echo $USER | id
查看得到的uid和gid
完成这些工作之后,直接运行docker-compose up -d
即可完成部署,等待几分钟让nginx-proxy
发现该容器并申请SSL证书后就可以访问了!