用Docker搭建微信公众号

Posted 马哥Linux运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Docker搭建微信公众号相关的知识,希望对你有一定的参考价值。

项目结构介绍

首先看一下整个项目的结构:

用Docker搭建微信公众号

etc ginx-confnginx的配置文件,用来做端口的转发。里面的代码如下:

 
   
   
 
  1. server {

  2. listen 80;

  3. server_name *.daoapp.io;

  4. location / {

  5. proxy_set_header X-Forwarded-Host $host;

  6. proxy_set_header X-Forwarded-Server $host;

  7. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  8. proxy_pass http://localhost:8080/;

  9. }

  10. }

我们将所有访问*.daoapp.io下80端口的请求全部转移到8080端口,也就是提交给Tomcat进行处理。

etcscripts是Docker启动运行的脚本,里面会启动Tomcat与Nginx服务。

 
   
   
 
  1. #!/bin/sh

  2. # Start Tomcat

  3. $TOMCAT_HOME/bin/startup.sh


  4. # Start nginx

  5. nginx

用Docker搭建微信公众号

WxApiServlet是处理请求的实现类,它会将微信服务器发来的Post请求封装成 MsgRequest对象,然后根据MsgRequest类型的不同(语音、文字、图片)来生成不同类型的handler,这里我只做了Event与Text类型的处理类,添加其它类型的处理需要继承BaseHandler,实现里面的doHandleMsg方法。这里需要注意两点,第一点是我将普通的文字与语音请求通过图灵机器人进行回复,因此你需要去图灵机器人申请apikey:

用Docker搭建微信公众号

daocloud.ymlDaoloud的CI脚本,用来对项目做持续集成。

Dockerfile是组织整个项目的心脏,包含Docker镜像的构建,然后将项目编译并部署在容器的Tomcat上。

Dockerfile编写

来看一下整个Dockerfile:

FROM ubuntu

 
   
   
 
  1. # 签名

  2. MAINTAINER saymagic "saymagic@163.com"


  3. # 安装JDK与nginx

  4. RUN apt-get update

  5. RUN apt-get install openjdk-7-jre -y

  6. RUN apt-get install openjdk-7-jdk -y

  7. RUN apt-get install nginx -y


  8. #拷贝nginx配置文件

  9. ADD ./etc/nginx-conf /etc/nginx/conf.d


  10. #拷贝启动脚本

  11. ADD ./etc/scripts /usr/local

  12. RUN chmod a+x /usr/local/start.sh


  13. #拷贝Tomcat与maven安装包

  14. ADD ./soft /tmp


  15. # 安装Tomcat 7

  16. RUN cd /usr/local && tar xzf /tmp/apache-tomcat-7.0.64.tar.gz

  17. RUN ln -s /usr/local/apache-tomcat-7.0.64 /usr/local/tomcat

  18. RUN rm /tmp/apache-tomcat-7.0.64.tar.gz


  19. # 安装maven

  20. RUN cd /usr/local && tar xzf /tmp/apache-maven-3.1.1-bin.tar.gz

  21. RUN ln -s /usr/local/apache-maven-3.1.1 /usr/local/maven

  22. RUN rm /tmp/apache-maven-3.1.1-bin.tar.gz


  23. RUN mkdir -p /webapp

  24. ADD ./webapp /webapp


  25. # 定义环境变量

  26. ENV TOMCAT_HOME /usr/local/tomcat

  27. ENV MAVEN_HOME /usr/local/maven

  28. ENV APP_HOME /webapp


  29. #编译源代码与部署

  30. RUN cd /webapp && /usr/local/maven/bin/mvn package

  31. RUN rm -rf $TOMCAT_HOME/webapps/*

  32. RUN cd /webapp && cp target/wx_server.war $TOMCAT_HOME/webapps/ROOT.war


  33. #启动Tomcat与Nginx

  34. CMD /usr/local/start.sh && tail -F /usr/local/tomcat/logs/catalina.out


  35. EXPOSE 80 8080

里面我对每个主要步骤都做了注释,整体思路是这样:首先安装JDK、Maven与Tomcat,然后使用Maven编译webapp下面的java 代码,并将打好的war包重命名为ROOT.war并拷进Tomcat的webapp目录来部署。最后运行start.sh来启动Tomcat与 Nginx。

Daocloud部署

如果你是第一次使用Daocloud,首先我们去Daocloud注册新账号,DaoCloud会将Github、GitCafe等git服务商作为代码源,所以你首先需要在[用户中心]->[第三方账户]里绑定Github、GitCafe账号:

用Docker搭建微信公众号

Github: https://github.com/saymagic/wxserver

Gitcafe:https://gitcafe.com/saymagic/wxserver

Bitbucket: https://bitbucket.org/saymagic/wxserver

Coding:https://coding.net/u/saymagic/p/wxserver/git

(注意的是:在Fork之后,记得修改token与图灵的appkey)

接下来选择[代码构建]->[创建新项目]

用Docker搭建微信公众号

我们可以给我们的项目起个名字叫做weixinserver

然后在[设置代码源]里选择我们Fork的项目。选择持续集成。

用Docker搭建微信公众号

最后,点击开始创建按钮。Daoloud就会默认将master分支进行构建:

用Docker搭建微信公众号

最后,点击[查看镜像]->[部署最新版本],Daoclod就会愉快的运行起来:

用Docker搭建微信公众号

上图标红的URL链接就是Daocloud为我们生成的微信公众后台链接。

持续集成

Daocloud提供了持续集成的功能,注意,持续集成不是持续构建,Daocloud的持续集成是保证我们每次push的版本都可以通过测试。然后再手动进行构建,然后运行镜像。相关文档可以看这里:http://help.daocloud.io/features/continuous-integration/index.html.

微信公众平台注册

用Docker搭建微信公众号

点击确定按钮,如果提示修改成功则表示我们token验证成功了,可以测试一下了!

测试

用Docker搭建微信公众号

总结

用Docker搭建微信公众号


来源链接:http://blog.saymagic.cn/2015/09/04/docker-weixin.html


网载文章,如有问题,可以微信联系我们的工作人员

用Docker搭建微信公众号


您看此文用 用Docker搭建微信公众号 用Docker搭建微信公众号· 秒,转发只需1秒呦~

以上是关于用Docker搭建微信公众号的主要内容,如果未能解决你的问题,请参考以下文章

Python快速搭建自动回复微信公众号

从Python爬虫到SAE云和微信公众号:新浪SAE上搭建微信服务

微信公众号

个人微信公众号搭建Python实现 -开发配置和微信服务器转入-认识微信公众号(14.1.1)

个人微信公众号搭建Python实现 -接收和发送消息-基本说明与实现(14.2.1)

微信公众号开发