Docker部署Sentry



Docker部署Sentry

部署Sentry實例
1.啟動Redis容器
docker run -d --name sentry-redis redis
2.啟動Postgres容器
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
3.生成所有sentry容器共享的密鑰
該值將用作 SENTRY_SECRET_KEY 環境變量

export SECRET_KEY=$(docker run --rm sentry config generate-secret-key|tail -n 1)
4.如果這是一個新數據庫,則需要運行 upgrade
docker run -it --rm -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade

直接使用docker run 運行ubuntu的鏡像時會出現 the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty' 的錯誤,前面加上winpty即可,即winpty docker run ---

winpty docker run -it --rm -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade

注意:這 -it 很重要,因為初始升級會提示創建初始用戶,如果沒有它則會失敗

5.現在啟動Sentry服務器
docker run -d -p 8080:9000 --name my-sentry -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-redis:redis --link sentry-postgres:postgres sentry
端口映射:如果希望能夠在沒有容器IP的情況下從主機訪問實例,則可以使用標准端口映射。只需添加 -p 8080:9000 到docker run參數,然后在瀏覽器中訪問或者 http://localhost:8080 或http://host-ip:8080。

6.啟動調度器和worker(每個worker都有一個唯一的名稱)
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron

docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
配置初始用戶
如果您在此期間未創建超級用戶upgrade,請使用以下命令創建一個:

docker run -it --rm -e SENTRY_SECRET_KEY=${SECRET_KEY} --link sentry-redis:redis --link sentry-postgres:postgres sentry createuser
環境變量
啟動sentry映像時,可以通過在 docker run 命令行上傳遞一個或多個環境變量來調整Sentry實例的配置。請注意,這些環境變量是作為快速入門提供的,強烈建議您在自己的配置文件中安裝或使用 sentry:onbuild 變體。

1.SENTRY_SECRET_KEY
用於Sentry中的加密功能的密鑰。此密鑰在所有正在運行的實例中應該是唯一且一致的。您可以生成一個新的密鑰,例如:

docker run --rm sentry config generate-secret-key
2.SENTRY_POSTGRES_HOST,SENTRY_POSTGRES_PORT,SENTRY_DB_NAME,SENTRY_DB_USER,SENTRY_DB_PASSWORD
Postgres服務器的數據庫連接信息。如果postgres存在鏈接容器,則不需要這些值。

3.SENTRY_REDIS_HOST,SENTRY_REDIS_PORT,SENTRY_REDIS_DB
Redis服務器的連接信息。如果redis存在鏈接容器,則不需要這些值。

4.SENTRY_MEMCACHED_HOST, SENTRY_MEMCACHED_PORT
Memcache服務器的連接信息。如果memcached存在鏈接容器,則不需要這些值。

5.SENTRY_FILESTORE_DIR
存儲Sentry文件的目錄。默認為 /var/lib/sentry/files, 是一個 VOLUME 可以持久化數據。

6.SENTRY_SERVER_EMAIL
From: 發送電子郵件中使用的電子郵件地址。默認:root@localhost

7.SENTRY_EMAIL_HOST,SENTRY_EMAIL_PORT,SENTRY_EMAIL_USER,SENTRY_EMAIL_PASSWORD,SENTRY_EMAIL_USE_TLS
發送smtp服務器的連接信息。如果smtp存在鏈接容器,則不需要這些值。

8.SENTRY_MAILGUN_API_KEY
如果您使用Mailgun作為入站郵件,請設置API密鑰並配置轉發到的路由 /api/hooks/mailgun/inbound/。

自定義鏡像
該sentry鏡像有許多種,每一個設計用於特定的使用情況。

1.sentry:<version>
這是事實上的鏡像。如果您不確定您的需求是什么,您可能想要使用這個。它被設計為既可以用作丟棄容器(安裝源代碼並啟動容器來啟動應用程序),也可以用作構建其他鏡像的基礎。

2.sentry:onbuild
通過復制自定義 config.yml 或 sentry.conf.py 文件並安裝插件,可以輕松自定義構建自己的Sentry實例 requirements.txt。

也可以在 onbuild 包中開發自定義擴展。如果構建目錄包含 setup.py 文件,則也會安裝該文件。

有關更多信息,請參閱Sentry官方文檔。

要創建自定義sentry:onbuild程序包,只需執行以下操作:

1.創建一個包含的Dockerfile,基礎鏡像為 FROM sentry:onbuild

2.在同一目錄中,添加自定義配置文件。

3.可以從docker-sentry GitHub repo獲取這些文件的副本以用作模板。

4.構建你的鏡像: docker build -t mysentry .

5.使用 mysentry 而不是運行自定義鏡像sentry。

 

 


參考地址:http://blog.seekplum.top/docker-sentry-deploy/ https://hub.docker.com/_/sentry/





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM