Docker 实战:情感分析系统-容器化部署全流程(sa-logic、sa-webapp、sa-frontend )
简介
本文将详细介绍情感分析系统的容器化部署全过程,涵盖从基础环境准备到各核心组件(sa-logic、sa-webapp、sa-frontend)的 Docker 镜像构建,再到通过 Docker Compose 实现多服务编排的完整流程。内容包含具体的操作命令、Dockerfile 配置细节、docker-compose.yaml 编排文件编写以及最终的系统访问验证,提供一套可直接参考的情感分析系统容器化部署实践方案
# 基础准备 软件包 Sentiment-Analyzer.tar.gz# 解压压缩包[root@master ~]# tar Sentiment-Analyzer.tar.gz [root@master ~]# cd sentiment-analyzer# 配置yum源[root@master ]vi /etc/yum.repos.d/local.repo[sa]name=sagpgcheck=0enabled=1baseurl=ftp://controller/sa-repo[root@master sentiment-analyzer]# cp /etc/yum.repos.d/sa.repo .# 完成后目录内所需文件[root@master sentiment-analyzer]# tree -L 2.├── docker-compose.yaml├── Dockerfile-frontend├── Dockerfile-logic├── Dockerfile-webapp├── local.repo├── sa-frontend│ └── sa-frontend.tar.gz├── sa-logic│ ├── app.py│ ├── python-packages.tar.gz│ └── requirements.txt├── sa-repo│ ├── packages│ └── repodata└── sa-webapp└── go-packages.tar.gz
1.容器化部署sa-logic
[root@master sentiment-analyzer]# cat Dockerfile-logic FROM centos:centos7.5.1804RUN rm -rf /etc/yum.repos.d/*COPY sa.repo /etc/yum.repos.d/WORKDIR /rootADD sa-logic/* ./ENV VUE_APP_API_HOST=http://192.168.30.10:9001RUN yum install -y python3 && \pip3 install python-packages/*EXPOSE 5000CMD ["python3","app.py"]构建镜像:docker build -t sa-logic:v1.1 -f Dockerfile-logic .
2.容器化部署sa-webapp
[root@master sentiment-analyzer]# cat Dockerfile-webapp ------------------------------------------FROM centos:centos7.5.1804RUN rm -rf /etc/yum.repos.d/*COPY sa.repo /etc/yum.repos.d/WORKDIR /rootADD sa-webapp/*.gz .RUN yum install -y golang && \go build -o webapp .EXPOSE 8080CMD ["/root/webapp"]构建镜像:docker build -t sa-webapp:v1.1 -f Dockerfile-webapp .
3.容器化部署sa-frontend
[root@master sentiment-analyzer]# cat Dockerfile-frontend FROM centos:centos7.5.1804RUN rm -rf /etc/yum.repos.d/*COPY sa.repo /etc/yum.repos.d/WORKDIR /rootADD sa-frontend/*.gz .ENV VUE_APP_API_HOST=http://192.168.30.10:9002RUN yum install -y nginx nodejsRUN npm run build && \rm -rf /usr/share/nginx/html/* && \cp -rf dist/* /usr/share/nginx/html/EXPOSE 80CMD ["nginx","-g","daemon off;"]---------------------------------------------------------------------docker build -t sa-frontend:v1.1 -f Dockerfile-frontend .
4.编排情感分析系统
[root@master sentiment-analyzer]# vi docker-compose.yaml version: '3'services:sa-logic:image: sa-logic:v1.1container_name: sa-logicports:- 9001:5000sa-webapp:image: sa-webapp:v1.1container_name: sa-webappports:- 9002:8080environment:- API_HOST=http://192.168.30.10:9001sa-frontend:image: sa-frontend:v1.1container_name: sa-frontendports:- 9003:80[root@master sentiment-analyzer]# docker-compose up -d [root@master sentiment-analyzer]# docker-compose ps Name Command State Ports -------------------------------------------------------------------sa-frontend nginx -g daemon off; Up 0.0.0.0:9003->80/tcp sa-logic python3 app.py Up 0.0.0.0:9001->5000/tcpsa-webapp /root/webapp Up 0.0.0.0:9002->8080/tcp# 使用浏览器访问http://$ip:9003