B站ID:老白嫖大怪兽
(有部署视频)
在这里感谢安木鸡的sentiment-analyzer项目
该应用程序只有一个功能:它以一个句子作为输入,使用文本分析计算出句子的情感值。
从技术角度来看,这个应用程序由三个微服务组成。每个微服务都具有一个特定功能:
该应用程序的数据流
通过展示数据在它们之间的流动方式是对这种交互最好的说明:
将云梦公司开发的基于微服务架构的ChinaSkillsSA智能文本的情绪分析(Sentiment Analysis)的系统实现全容器化部署,该ChinaSkillsSA智能分析系统应用系统架构图如下:
模块 | 使用技术 | 说明 |
---|---|---|
sa-frontend | Node.js | 前端项目,使用 Vue.js 开发。 |
sa-logic | Python Flask | 输入文本句子的情绪分析微服务,使用 Python 开发。 |
sa-webapp | Spring Cloud | Web服务,处理 sa-frontend 请求,调用 sa-logic 微服务,使用Java语言开发。 |
请将sa-frontend组件、sa-logic组件和sa-webapp组件按照要求进行容器化。
2.编写Dockerfile制作sa-frontend镜像,生成镜像名为chinaskillsa-frontend:v1.1,并推送其到私有仓库。具体要求如下: (2分)
(1)基于centos:7.5.1804基础镜像;
(2)指定作者为Chinaskill;
(3)安装nginx和npm工具;
(4)复制所有前端包到镜像内;
(5)设置服务自启动。
FROM centos:centos7.5.1804
MAINTAINER Chianskill
RUN rm -rf /etc/yum.repos.d/*
COPY ftp.repo /etc/yum.repos.d/
ENV VUE_APP_API_HOST=http://10.18.4.10:8080
WORKDIR /app
ADD sa-frontend-rely.tar.gz .
RUN yum -y install nginx nodejs npm -y \
&& npm run build \
&& mv dist/* /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
2.编写Dockerfile制作sa-logic镜像,生成镜像名为chinaskill-logicsa:v1.1,并推送其到私有仓库。具体要求如下: (2分)
(1)基于centos:7.5.1804基础镜像;
(2)指定作者为Chinaskill;
(3)安装Python3.7;
(4)设置sa-logic服务开机自启。
FROM centos:centos7.5.1804
MAINTAINER Chianskill
RUN rm -rf /etc/yum.repos.d/*
COPY ftp.repo /etc/yum.repos.d/
WORKDIR /app
ADD pythonpip-rely.tar.gz .
RUN yum -y install python36 && \
pip3 install -r requirements.txt --no-index --find-links=pip-pack/
EXPOSE 5000
CMD ["python3","app.py"]
3.编写Dockerfile制作sa-webapp镜像,生成镜像名为chinaskillsa-webapp:v1.1,并推送其到私有仓库。具体要求如下: (2分)
(1)基于centos:7.5.1804基础镜像;
(2)指定作者为Chinaskill;
(3)安装golang;
(4)复制webapp到镜像内并构建;
(5)设置服务自启动。
FROM centos:centos:7.5.1804
MAINTAINER Chianskill
RUN rm -rf /etc/yum.repos.d/*
COPY ftp.repo /etc/yum.repos.d/
WORKDIR /root
ADD sa-go-rely.tar.gz .
RUN yum install -y go \
&& go mod download \
&& go build -o webapp .
EXPOSE 8080
CMD ["./webapp"]
4.创建chinaskills-sa.yaml文件,使用上述镜像编排部署ChinaSkillsSA情感分析应用系统。(4分)
(1)容器1名称:sa-logic;镜像:chinaskillsa-logic:v1.1;端口映射:5000:5000
(2)容器2名称:sa-webapp;镜像:chinaskillsa-webapp:v1.1;端口映射:8080:8080
(3)容器3名称:sa-frontend;镜像:chinaskillsa-frontend:v1.1;端口映射:84:80
version: '3'
services:
logic:
container_name: sa-logic
image: chinaskillsa-logic:v1.1
ports:
- "5000:5000"
webapp:
container_name: sa-webapp
image: chinaskillsa-webapp:v1.1
ports:
- "8080:8080"
environment:
- API_HOST=http://logic:5000
frontend:
container_name: sa-frontend
image: chinaskillsa-frontend:v1.1
ports:
- "84:80"
depends_on:
- webapp
情绪分析接口
请求:
curl -X POST \
http://127.0.0.1:8080/analyse \
-H 'Content-Type: application/json' \
-d '{
"sentence": "很酷噢"
}'
响应:
{
"sentence": "很酷哦",
"level": 9
}