2018-01-19-sentry通过docker部署
环境安装
-
请先安装 Docker 1.10+ ,使用 CE 版本;安装文档,写的很清晰,不详述;因为国内网络环境问题,一般建议 docker 使用中科大的仓库镜像,具体操作请查看中科大镜像使用说明。
-
安装 docker-compose,安装文档:
$ curl -L --fail https://github.com/docker/compose/releases/download/1.14.0/run.sh > /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
或者可以通过pip安装:
- yum install python-pip
- pip install docker-compose
sentry 安装/测试
找到一个安装目录,当前假定为 /data/sentry,并进入此目录。
首先拉取配置和构建文件仓库:
git clone https://github.com/getsentry/onpremise.git
然后进入目录仓库目录,默认为 onpremise。
根据README进行安装:README
创建以下文件夹:
mkdir -p data/{sentry,postgres}
下一步生成秘钥:
docker-compose run --rm web config generate-secret-key
这一步会产生一个秘钥,复制它到 docker-compose.yml 文件的 SENTRY_SECRET_KEY 项,并取消 SENTRY_SECRET_KEY 项的注释,例子如下:
# Run `docker-compose run web config generate-secret-key`
# to get the SENTRY_SECRET_KEY value.
SENTRY_SECRET_KEY: '*********************'
SENTRY_MEMCACHED_HOST: memcached
然后创建相关数据库和账号:
docker-compose run --rm web upgrade
这一步会要求你填写一个账号密码,用于安装完成之后登录后台的管理员账号,请填写并记录。
最后一步,使用 docker-compose 启动所有容器并提供服务:
docker-compose up -d
这时候使用 docker-compose ps
命令可以看到类似如下的容器列表:
Name | Command | State | Ports |
---|---|---|---|
onpremise_base_1 | /entrypoint.sh run web | Up | 9000/tcp |
onpremise_cron_1 | /entrypoint.sh run cron | Up | 9000/tcp |
onpremise_memcached_1 | docker-entrypoint.sh memcached | Up | 11211/tcp |
onpremise_postgres_1 | docker-entrypoint.sh postgres | Up | 5432/tcp |
onpremise_redis_1 | docker-entrypoint.sh redis ... | Up | 6379/tcp |
onpremise_smtp_1 | entrypoint.sh tini -- exim ... | Up | 25/tcp |
onpremise_web_1 | /entrypoint.sh run web | Up | 0.0.0.0:9000->9000/tcp |
onpremise_worker_1 | /entrypoint.sh run worker | Up | 9000/tcp |
并使用浏览器访问 {ip}:9000,使用开始自己填写的管理员账号就可以登录后台。
其他
如果在运行 docker-compose run --rm web config generate-secret-key
出现 ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
错误,这是因为只有 root 用户和docker 组的用户才可以访问 Docker 引擎的 Unix socket。
请用sudo su -
命令切换到root用户执行,当然更好的做法是将当前用户添加到docker用户组:
建立 docker 组:$ sudo groupadd docker
将当前用户加入 docker 组:$ sudo usermod -aG docker $USER