sentry+docker+traefik 自建部署

需要sentry来记录前后端记录,商用的购买太贵还有限制,不划算。打算用服务器自建部署,踩了不少坑,做个记录。

基本思路,使用getsentry/onpremise的脚本安装,然后使用traefik做代理(ssl在traefik上配置)

  1. 环境准备:Docker 17.05.0+ Compose 1.23.0+
  2. clone https://github.com/getsentry/onpremise
  3. 进入onpremise,切换到10.0.1分支(为什么要用这个分支,因为后续的,项目使用了nginx做内部的代理,尝试了很久traefik代理nginx,都没有成功,所以就用了这个版本,以下步骤都是基于这个版本的)
  4. 修改配置:进入sentry文件夹
    1. 复制config.example.yml为config.yml,修改以下配置
      1. 增加 system.url-prefix: ‘https://xxxx.xxx.com’  // 这个填写你自己的sentry的域名地址
      2. 修改Email,sentry需要发邮件来添加用户。自己用QQ或其他邮箱,把smtp的信息获取到,对应的填写即(注意,下面mail.from必须跟username一致)
        mail.backend: 'smtp'  # Use dummy if you want to disable email entirely
        mail.host: 'smtp.yandex.ru'
        mail.port: 587
        mail.username: 'username@your.host'
        mail.password: 'password'
        mail.use-tls: true
        # The email address to send on behalf of
        mail.from: 'username@your.host'
    2. 复制sentry.conf.example.py为sentry.conf.py,修改以下配置:(不需要http的可以跳过这步)
      把SSL/TLS里的注释去掉就行
  5. 运行安装脚本,因为安装比较慢,建议进入用screen来运行:
    1. screen -S sentry
    2. 进入onpremise文件夹
    3. ./install.sh
      (这个步骤比较慢,可以按Ctrl+A+D,将screen放入后台运行。需要进入查看,输入命令screen -r sentry就行。 具体的可以查screen命令)
    4. 安装完后,会提示你创建帐号,输入邮箱、密码即可
  6. 修改onpremise文件夹下的docker-compose.yml(下面的1和2是为了配置traefik,如果用ninx的话,代理到9000端口就行)
    1. 增加全局nertwork:
      配置最底部,增加:
      networks:
      traefik_gateway:
      external: true
    2. 修改service的web,增加lables和对应需要的traefik的nertwork,我这边修改后的:(注意,ports注释掉。如果不需要https,lables的https可以去掉;如果不是deploy部署的,把下面的deploy去掉,直接用lables就行)
      web:
      << : *sentry_defaults
      #ports:
      # – ‘9000:9000/tcp’
      networks:
      – default
      – traefik_gateway
      deploy:
      labels:
      – “traefik.enable=true”
      – “traefik.http.services.sentry.loadbalancer.server.port=9000″# http
      – “traefik.http.routers.sentry.entrypoints=web”
      – “traefik.http.routers.sentry.rule=Host(`sentry.xxx.com`)”# https
      – “traefik.http.routers.sentry-web-secure.tls=true”
      – “traefik.http.routers.sentry-web-secure.entrypoints=web-secure”
      – “traefik.http.routers.sentry-web-secure.rule=Host(`sentry.xxx.com`)”
    3. 把配置里的image变量改为真实image地址:
      1. $SNUBA_IMAGE改为getsentry/snuba:latest
      2. $SYMBOLICATOR_IMAGE改为getsentry/symbolicator:latest
    4. 更新sunba的命令:
      https://github.com/getsentry/onpremise/pull/434/files
  7. 运行docker:
    1. deploy:docker stack deploy -c docker-compose.yml sentry
    2. 非deploy:docker-compose up -d

React-native Image组件相关问题记录

最近应用内的表情(图片)问题,发现了很多奇怪的问题,总结如下:

  1. IOS13下,Text包裹Image会出现一个文件图标背景。
    原因:因为Text里显示Image,需要用一个占位符,RN的IOS原生使用了一个组件来占位。IOS13下,这个组件会默认显示为空为一个文件图标,导致这个问题。
    解决:https://github.com/facebook/react-native/commit/06599b3e594355a1d5062ede049ff3e333285516?tdsourcetag=s_pcqq_aiomsg
    如果不升级版本,可以用过打Patch方式补丁
  2. android下,Gif不动态:这个是没有启用动态库的原因,可以参考官方文档:
    注意,一定要看自己RN对应版本的,因为不同版本的库版本不一样
    https://facebook.github.io/react-native/docs/0.59/image#gif-and-webp-support-on-android
  3. 如果你是用Text包裹的Image,你会发现,用第二个办法加了动态库反而会导致图片无法显示。这是一个BUG,暂时还没找到解决方案。等空一点再查下,估计也是某个源码的问题
  4. 如果你是Text包裹的Image,然后你还在Text上增加了selectable属性,会导致Image的加载也有问题。第一次显示不加载,然后比如点进入一个详情,或者其他地方显示了Image,才会都显示。也是未找到原因。

React-Native 踩坑记录

在React-Native开发的过程中,遇到了非常多的问题,好在社区比较强大,搜索都解决了。这里做一个记录,一个是自己做备忘,防止哪天又碰到相同问题;另一个,也给其他碰到的人做一个总结。

  1. gradle 3.3 在windows下报apt打包错误
    解决方案:升级到3.4
  2. build出现:Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’. > java.lang.OutOfMemoryError: GC overhead limit exceeded
    解决方案:
    次点击 Help > Edit Custom VM Options 以打开 studio.vmoptions 文件。(没有新建就行)
    之后编辑文件,填入配置,然后保存,重启Android studio

    -Xms256m
    -Xmx3080m
    -XX:MaxPermSize=350m
    -XX:ReservedCodeCacheSize=225m
    -XX:+UseCompressedOops

  3. 升级到gradle5之后,build release报错unable to load script make sure you are either running a metro server or that your bundle “index.android.bundle” is packaged correctly for release https://github.com/facebook/react-native/issues/25348
    解决方案:
    build release之前运行:
    react-native bundle –platform android –dev false –entry-file index.js –bundle-output android/app/src/main/assets/index.android.bundle –assets-dest android/app/src/main/res
  4. 接问题3,运行bundle之后,build release出现报错:Duplicate resources
    解决方案:
    https://github.com/facebook/react-native/issues/19239#issuecomment-414564404
    android-> app -> src -> main -> res文件夹里,除了drawable,其他drawable-hdpi之类的,都删除即可

打算学习的技术栈

今年以来,一直在接触新的技术,但是一直没有比较成块的时间来学习。列个单子,督促自己抽时间来学习:

  • 后端
    • TP5 完成公司项目
    • laravel 使用laravel重构订单系统 API风格
    • Go 使用Go写个小工具
    • Node.js 配合Electron搭建一个客户端
    • docker 多容器部署订单系统
    • 部署 自动部署 测试等
    • 持续集成 Jenkins
  • 前端
    • Vue.js 订单系统前端用Vue.js实现
    • Webpack 完成公司项目
  • 其他
    • 微信小程序 开发一个小程序,有趣 社交 传播
    • Weex 订单系统发布个Android/IOS 应用
    • Electron 搞个客户端

不列不知道,一列一大堆。好了,有压力才有动力。加油加油!

关于钓鱼

从在上海开始,好像是在家里跟大家一起钓鱼之后,就开始接触这项爱好。上海的时候,还是老婆和秀娟两人一起大家买的杆子。而后来,都是我一人玩的居多。还记得大中午,在妖风阵阵的上海,拖着老婆去上海的人工河下钓鱼。看着别人 玩,自己没事就看视频,学着钓。结果,在上海那么久,一次鱼也没有钓中。真是好奇,自己如何能够坚持的。

而后,我们到了义乌。偶然的机会,我们去到了一个水库。从那开始,我又开始重操旧业。老婆真的很爱我,经常周末陪着我去钓鱼。我们准备好吃的鸡翅等零食,搭一个小小的帐篷,在水库的树林里,钓着鱼,晒着太阳,聊着天。那时候,真的感觉自己是这个世界上最幸福的人。因为有我最爱的人,陪我做最爱的事情之一。在水库钓鱼很多次,结果还是一条大鱼没上,唯一一条还被跑了。真是好奇,自己如何能够坚持的。

在后来,我们回到了家里。孕育起小叶子,真的没有时间也没有心情去钓鱼。毕竟,最大的宝贝肚子里还有个小宝贝。生出来后,也是不好把两人都抛在家。直到最近,才渐渐开始独自行动。

虽然我一个人出去打球,比较方便,但是一直都感觉少了什么。总是在去和回来的途中,无限的思念着老婆孩子。而且在做这些事情的时候,总觉得自己很孤独,即使是成群结队的去往。也许在很多人眼中,我这是小孩子,不男人的形象。可在我的心底,真的很希望自己爱的人,能够分享我的爱好和 喜悦。就如同我非常喜欢分享老婆读书的心得。总觉得两个人在一起,一定要交心,才能把每天平淡而又充满了负能量的生活过的精彩而快乐。

说回钓鱼。虽然至今没有钓到像样的鱼,但是每次钓鱼,坐在水边,心里就觉得很开心。特别是如果能够有陪着我的老婆,有能够交流的对象,有能够教我的老师,那就更加棒了。很多人觉得钓鱼是中老年人的项目,但我觉得年轻人更需要修身养性。要把自己的心思专注起来,无论是做什么事情。我希望自己能够把时间管理好,既能够高效的完成工作,又能温馨的陪着家庭,还能够通过自己的爱好来结交朋友,更调节心情。

钓鱼,我会一直坚持,就如同生活中积极乐观的态度。去笑,去努力。为更好的未来,为更好的让家庭美满,让老婆孩子幸福。

晚安

生活的兴趣与快乐

晚上和老婆讨论起工作的事情,也许是很久没有跟人唠叨。老婆有点被我烦到了,不禁问起我们婚后是不是还有共同的话题和兴趣。她似乎在脑海中寻找了一番,并没有找到满意的答案,心中不由的伤感起来。

怎么说呢。其实人生都是这样,越往前走,越来越多的生活琐碎。不管是工作还是孩子,家庭异或是一个简单的清理问题,都会使我们忘记生活的乐趣和快乐。但生活不仅是眼前的苟且,还有诗和远方。

在我心里,有无数想要和你分享的内容,更有无数想从你那里倾听的耐心和兴趣。时间一点点往前走,我们会遇到各种各样的人和事。看过不同的风景和日落,也就有不同的感触和心情。

好了,不写了。我要去陪老婆了,sql程序跑完了。

千言万语,不如我陪着你,到天荒地老。等我们经历的越来越多,其实我们的话题和兴趣也会越来越多。只怕时光太短,不能与你共白发。

开博客

从海南回来之后,一大堆的事情侵袭而来。儿子不舒服,一直在奔波着看病,又担心又有无可奈何的感觉。直到月末才逐渐好起来,终于也觉得日头暖和起来。这个秋天,有点像在上海的第一个秋天。冷风刮着脸颊,如同一把破旧的却又电力十足的剃须刀,刀头刺啦刺啦的从脸上刮过,刺痛而干涩。

又在看房 买房的各种纠结中 ,来回奔波。也终于在月末将房子定下了,总算是把回来之后,最大的一件心事给处理了。妻子 车子 儿子 房子,接下来就要更多的把时间和精力放在工作和家庭身上。用乐观向上的积极心态,去面对每一天。要每天都有自己的坚持原则,去做回原来大学 时期的自己。敢闯 敢做,永远坚持自己喜欢的事情。

有这么一些重要的事情,工作 老婆儿子 健身 篮球 钓鱼 唱歌 吉他 街舞 羽毛球 博客等,一个个都不能放过。要做一个非常有意思的人,非常开心的人。

第一篇博客,以后保证一周至少更新2篇文章。无论是技术还是杂文都可以。