代码cosin
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
中很多库。
错误记录
1. 找不到servlet-api.jar
打开网页https://mvnrepository.com/,搜索servlet-api
,下载其某个版本的jar包,放入自己本地jdk/jre/lib/ext/
目录下,最好也在jre/lib/ext/
目录下也放一个。
2. 找不到LifecycleListener
具体报错如下:
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