cosin是一套开源客服系统源码,源码地址: https://github.com/chatopera/cosin。
在项目README.md中有开发环境文档地址,建议在Linux上开发。这里记录为在Windows上尝试搭建的问题记录。
Docker Desktop for windows安装,安装后可以点击Start在引导下下载示例源码getting-started,创建镜像并运行getting-started容器,然后就可以在网页输入localhost:80查看效果。
如果想再次学习,右键桌面右下角的Socker Desktop,选择Learn。选择DashBoard可以查看镜像和容器列表
docker build -t docker101tutorial . (在当前目录下构建名为docker101tutorial的镜像,根据当前目录下的Dockerfile文件) docker run -d -p 80:80 --name docker-tutorial docker101tutorial (运行名字为docker-tutorial的容器在上一步创建的docker101tutorial镜像中, 并且把docker的80端口映射到本机的80端口) docker run hello-word (运行hello-word镜像,先查本地有没有,没有从网络仓库library/hello-world中拉,拉完后创建并运行) docker run --detach --publish 80:80 --name webserver nginx (-d -p的全称表达方法) docker image ls (查看所有镜像) docker image rm 镜像名字 (移除前确保镜像中没有容器) docker container ls --all (查看所有容器) docker container stop 容器名字 (停止某个容器) docker container rm 容器名字 (移除某个容器,移除前确保容器是停止的) docker --version (查看docker版本) Docker Compose容器管理,根据cosin的开发文档,执行如下docker-compose命令,然后在DashBoard中可以看到容器列表以及容器所属镜像和容器管理cosin docker-compose up -d elasticsearch (首次会下载服务)(在名为cosin的docker-compose中生成名为elasticsearch的镜像,并且镜像中启动了名为cosin_elasticsearch_1的容器) docker-compose up -d activemq (首次会下载服务)(在名为cosin的docker-compose中生成名为chatopera/activemq的镜像,并且镜像中启动了名为cosin_activemq_1的容器) docker-compose up -d mysql (首次会下载服务)(在名为cosin的docker-compose中生成名为chatopera/mysql的镜像,并且镜像中启动了名为cosin_mysql_1的容器) docker-compose up -d redis (首次会下载服务)(在名为cosin的docker-compose中生成名为chatopera/redis的镜像,并且镜像中启动了名为cosin_redis_1的容器) docker-compose -version (查看docker版本)IDEA导入项目,运行app目录下的Application。
IEDA安装Spring插件,cosin项目会使用spring-boot中很多库。
打开网页https://mvnrepository.com/,搜索servlet-api,下载其某个版本的jar包,放入自己本地jdk/jre/lib/ext/目录下,最好也在jre/lib/ext/目录下也放一个。
具体报错如下: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'createEmbeddedServletContainerFactory' defined in class path resource [com/chatopera/cc/config/WebServerContainerConfigure.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.context.embedded.EmbeddedServletContainerFactory]: Factory method 'createEmbeddedServletContainerFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: org/apache/catalina/LifecycleListener