แฉแแแแ แแฎแแแแแ, แฐแแแ แแ แจแแฅแแแ แฐแแแ
แแฃแแแ แแแขแแแ แแ แฉแแแ แแแฎแแ แฃแแแ แแแ แ แแแกแจแ แแแแแแแแแกแแ แแแ แแแแ แแฃแแแแแแชแแ. แแแแแแฌแแ แแ!
Kubernetes แแแ แขแแแแ. แ แแขแแ แแฎแแแแ แแแแแแแ แแแ แคแฃแแก แแ แกแคแแ แแจแ แแฃแจแแแแแกแแแแก, แแแจแแ แ แแชแ แแแแแกแแแแ แก แจแแฃแซแแแ แแ แขแแฅแแแแแแแแก แ แแแแแแแแ แกแแแแจแ แแแแฃแคแแแก?
แแฃ แแญแแ แแแแแ แแแแ, แ แแ Kubernetes แจแแแซแแแแ แแกแ แกแฌแ แแคแแ แแกแฌแแแแแ, แแแ แฉแแแ, แแแแแ แกแชแแแแ แแแแก แแแแแแแแ. แแแ แซแแ, แแ แแแกแแแแก แแแแแกแแแแก แจแแแแแ, แแฅแแแ แจแแซแแแแ แแฃแแแ แแแขแแก แแแแกแขแแ แจแ แแแแ แแกแแ แแแกแแแแ แแแคแฃแซแแแแฃแแ แแแแแแแชแแแก แแแจแแแแแก. แแแแก แแแ แแแขแแ แจแแแแซแแแ, แ แแแแแ แกแฌแแ แแ แแ แแแแแแแแแแแแ, แ แแแแแกแแช แแฅ แแแงแแแแ, แแแกแฌแแแแ แฉแแแแก แแแแแแขแแแก Kubernetes-แแแ แแฃแจแแแแแก. แ แแ แแแแกแฎแแแแแแแ แแก แกแแฎแแแแซแฆแแแแแแ แกแฎแแแแแกแแแ? แกแแแแแแแแแแจแ, แแแแ แ แ แแ. แแกแ แ แแ, แแ แแแกแแแแแแก แฃแแแขแแกแแแ แแฌแงแแแ แแแ แขแแแ แกแแแแแแแก แแฎแกแแแ - Kubernetes-แแก แชแแแแแแ แแ kubectl แแ แซแแแแแแก แแแฎแแกแแแแแแแแแ. แแ แกแขแแขแแแแแก แแแขแแ แแแ แแแ แแฃแแแแแ, แ แแ แแแแ แแแแแฎแแแแ แแชแแแแก แแแแแแแชแแแแแก แจแแแฃแจแแแแแแก, แแแแ แแกแแ แแแกแแแก แแ Docker แแแแขแแแแแ แแแก. แฉแแแ แกแฎแแ แแแแ แฌแแแแแ. แแแ แแแ แ แแแจแ, แแแแแ แแแกแแฃแแ แแ แแแแแ, แแฃ แ แแแแ แฃแแแ แแแฃแจแแแ แแ แแแ แแแ แแแแแแฃแขแแ แแ แแแแ แแกแแ แแแกแแแแ แแแคแฃแซแแแแฃแแ. แจแแแแแ แฉแแแ แแแแแแฎแแแแแ แแแแขแแแแแ แแแแก แกแฃแ แแแแแก แแแแแแฃแแ แแแแ แแกแแ แแแกแแกแแแแก. แแแแก แจแแแแแ แแ แแแแแชแแแแ Kubernetes-แก แแ แแแแแแแแแแแแแ แแแแ แแกแแ แแแกแแแแ แแแคแฃแซแแแแฃแแ แแแแแแแชแแแก แแแแแแแกแแแแก Kubernetes-แแก แแแแ แแแ แแฃแ แแแแกแขแแ แจแ.
แแก แแแแแแแ, แแแแแแแแแแแแแ แแแแแแแแ Kubernetes-แแก แแแแแ แ, แแแกแชแแแก แฆแ แแ แแแแแแแก แแแแก แจแแกแแฎแแ, แแฃ แ แ แฎแแแแ, แ แแช แกแแจแฃแแแ แแแแแแแแก แกแญแแ แแแแ, แ แแแ แแแแแแก, แ แแแแแแแ แแแ แขแแแแ แแ แแก แงแแแแแคแแ แ แแแฌแงแแแแแ Kubernetes-แจแ. Kubernetes, แ แ แแฅแแ แฃแแแ, แแแ แขแแแ แขแแฅแแแแแแแแ, แแ แแแ แแแแ, แ แแ แแแกแแช แกแฃแ แก แแแกแ แแแฃแคแแแแ, แแชแแก แกแแ แแ แ แแแแ แแแแแแงแแแแแ.
แแฎแแ, แงแแแแแแแแ แ แแแแแขแแแแก แแแ แแจแ, แแแแแฌแงแแ แแฃแจแแแแ แแ แแแกแแฃแแ แแ แแแแแแแชแแแแ, แ แแแแแแแช แแแแฃแจแแแแแ.
แแฅแกแแแ แแแแแขแฃแแ แแแแแแแชแแ
แฉแแแแ แแแแแแแชแแ แจแแแกแ แฃแแแแก แแฎแแแแ แแ แ แคแฃแแฅแชแแแก. แแแ แแฆแแแก, แ แแแแ แช แจแแงแแแแแก, แแ แแ แฌแแแแแแแแแ, แ แแก แจแแแแแแแช แขแแฅแกแขแแก แแแแแแแแก แฎแแแกแแฌแงแแแแแก แแแแแงแแแแแแ แแฎแแ แชแแแแแแก แแ แฌแแแแแแแแแแก แกแแแขแแแแแขแแแฃแ แแแแแแแก, แแฆแแแก แจแแคแแกแแแแก แฌแแแแแแแแแแก แแแขแแ แแก แแแแชแแฃแ แ แแแแแแแแแแฃแแแแแก แจแแกแแฎแแ แแแ แแแแฃแแ แแแแแฅแขแแก แแแแแ แ.
แแกแ แแแแแแงแฃแ แแแ แแ แแแแแแแชแแแก แแแแแแ แ แคแแแฏแแ แ.
แแแแฌแงแแแแก แแแแแแแแก แแแ แแแแแแแชแแ
แขแแฅแแแแฃแ แ แแแแแกแแแ แแกแแ, แแแแแแแชแแ แจแแแแแแ แกแแแ แแแแ แแกแแ แแแกแแกแแแ, แ แแแแแแแแแ แแแแแแฃแแ แฌแงแแแขแก แแแแชแแแแแแก แแแ แแแแฃแ แแแแแแแฅแขแก:
- SA-Frontend แแ แแก Nginx แแแ แกแแ แแแ แ, แ แแแแแแช แแแกแแฎแฃแ แแแ React แกแขแแขแแแฃแ แคแแแแแแก.
- SA-WebApp แแ แแก Java-แจแ แแแฌแแ แแแ แแแ แแแแแแแชแแ, แ แแแแแแช แแแฃแจแแแแแก แแแแฎแแแแแแก แฌแแแ แแแฌแแแแแแ.
- SA-Logic แแ แแก แแแแแแแก แแแแแแแชแแ, แ แแแแแแช แแฎแแ แชแแแแแแก แขแแฅแกแขแแก แแแแฌแงแแแแก แแแแแแแก.
แแแแจแแแแแแแแแแ แแฆแแแแจแแแก, แ แแ แแแแ แแกแแ แแแกแแแ แแแแแแ แแแฃแแแ แแ แแ แกแแแแแก. แแกแแแ แแฎแแ แชแแแแแแแ โแแแแแแแแแแแแก แแแแแฏแแแแกโ แแแแแก, แแแแ แแ, แแแแแ แแ แแก, แกแญแแ แแแแแ แแ แแแแแแแแแ แฃแ แแแแ แแแแ.
แแแแแชแแแแแ แแแแแแแแแ แแแแแแแชแแแจแ
แแแแแ แแแชแแแฃแ แแแแแ แแแแจแ แจแแแแซแแแแ แแฎแแแแ แกแแกแขแแแแก แแแแแแ แแแ แแขแแแแแ, แ แแแแแแแช แแกแแฎแแแก แแแแแแแชแแแจแ แแแแแชแแแแ แแแแแแแแก. แแแแแ แแแแจแแแแ แแกแแแ:
- แแ แแฃแแแ แ แแแฎแแแก แคแแแแก แกแแ แแแ แแแแ
index.html
(แ แแช แแแแแก แแฎแ แแ แแขแแแ แแแแ React แแแแก แแแแแขแก). - แแแแฎแแแ แแแแแ แฃแ แแแแ แแฅแแแแแแก แแแแแแแชแแแกแแแ, แแก แแฌแแแแก แแแ แก แแแแแคแฎแฃแแแ แแแคแฃแซแแแแฃแ แแแ แแแแแแแชแแแจแ.
- แแแ-แแแแแแแชแแ แขแแฅแกแขแแก แแแ แฉแแแแก แแแแฎแแแแแก แแแแแกแชแแแก Python แแแแแแแชแแแก.
- แแแแแแแก แแแแแแแชแแ แแแแแแแแแแก แขแแฅแกแขแแก แกแแแขแแแแแขแก แแ แแแ แฃแแแแก แจแแแแแก แแแแฎแแแแแก แแแกแฃแฎแแ.
- Spring แแแแแแแชแแ แแแแแแแแก แแแกแฃแฎแก React แแแแแแแชแแแแ (แ แแแแแแช, แแแแแก แแฎแ แแ, แแแแฎแแแ แแแแแก แฃแฉแแแแแแก แแแแแแแแแแแฃแแ แขแแฅแกแขแแก แจแแแแแก).
แงแแแแ แแ แแแแแแแชแแแก แแแแ แจแแแแซแแแแ แแฎแแแแ
แแแแ แแกแแ แแแกแแแแ แแแคแฃแซแแแแฃแแ แแแแแแแชแแแก แแแจแแแแ แแแแแแแแ แแ แแแแฅแแแแแ
แแแแกแแแแก, แ แแ แแแแแแแชแแแ แแแฃแจแแแก, แกแแแแแ แแแแ แแกแแ แแแกแ แฃแแแ แแแแแฌแงแแ. แแแแแฌแงแแ แแแแแแ แงแแแแแแ แแแแแแแ - แฌแแแ แแแแแแแชแแแ.
โ React-แแก แแแงแแแแแ แแแแแแแแ แแแ แแแแแแแแ แแแแกแแแแก
React แแแแแแแชแแแก แแแกแแจแแแแแ, แแฅแแแ แฃแแแ แแแแแแกแขแแแแ แแ Node.js Framework แแ NPM แแฅแแแแก แแแแแแฃแขแแ แจแ. แแ แงแแแแแคแ แแก แแแแแกแขแแแแ แแแแก แจแแแแแ แแแแแแแ แขแแ แแแแแแแก แแแแแงแแแแแแ แแ แแแฅแขแแก แกแแฅแแฆแแแแแจแ sa-frontend
แแ แแแฃแจแแแ แจแแแแแแ แแ แซแแแแแ:
npm install
แกแแฅแแฆแแแแแจแ แแ แแ แซแแแแแแก แจแแกแ แฃแแแแแ node_modules
แฉแแแขแแแ แแแแ React แแแแแแแชแแแก แแแแแแแแแแฃแแแแแแ, แ แแแแแแ แฉแแแแฌแแ แแแ แแ แแก แคแแแแจแ package.json
. แแแแแ แกแแฅแแฆแแแแแจแ แแแแแแแแแแฃแแแแแแแก แฉแแแแขแแแ แแแแก แจแแแแแ, แแแฃแจแแแ แจแแแแแแ แแ แซแแแแแ:
npm start
แฒกแฃแ แแก แแ แแก. React แแแ แแฎแแ แแแจแแแแฃแแแ แแ แแแกแ แฌแแแแแ แจแแกแแซแแแแแแแ แแ แแฃแแแ แแก แแแกแแแแ แแแก แแแแแแแชแแแ localhost:3000
. แแฅแแแ แจแแแแซแแแแ แจแแชแแแแแ แ แแฆแแช แแแก แแแแจแ. แแฅแแแ แแแฃแงแแแแแแแแ แแแแแแฎแแแ แแ แชแแแแแแแแแแก แแคแแฅแขแก แแ แแฃแแแ แจแ. แแก แจแแกแแซแแแแแแแ แแแแฃแแแแแก แ.แฌ โแชแฎแแแโ แแแแแชแแแแก แฌแงแแแแแแ. แแแแก แฌแงแแแแแแ, แคแ แแแข-แแแแแก แแแแแแแแ แแแ แแฅแชแแแ แแแ แขแแ แแ แกแแกแแแแแแแ แแแแแชแแแแแแแ.
โ React แแแแแแแชแแแก แแแแแแแแแ แฌแแ แแแแแแกแแแแก
React แแแแแแแชแแแก แ แแแแฃแ แแ แแแแแงแแแแแแก แแแแแแแแกแแแแก, แฉแแแ แฃแแแ แแแแแแแงแแแแแ แแแ แกแขแแขแแแฃแ แ แคแแแแแแแก แแแแ แแแแ แแ แแแแแฌแแแแ แแกแแแ แแแแแแขแแแก แแแ แกแแ แแแ แแก แแแแแงแแแแแแ.
React แแแแแแแชแแแก แแกแแจแแแแแแแ, แแแแแ แขแแ แแแแแแแก แแแแแงแแแแแแ, แแแแแแแ แกแแฅแแฆแแแแแจแ sa-frontend
แแ แแแฃแจแแแ แจแแแแแแ แแ แซแแแแแ:
npm run build
แแก แจแแฅแแแแก แแแ แแฅแขแแ แแแก แแ แแแฅแขแแก แกแแฅแแฆแแแแแจแ build
. แแก แจแแแชแแแก แงแแแแ แกแขแแขแแแฃแ แคแแแแก, แ แแแแแแช แกแแญแแ แแ React แแแแแแแชแแแก แแฃแจแแแแแกแแแแก.
โ แกแขแแขแแแฃแ แ แคแแแแแแแก แแแแกแแฎแฃแ แแแ Nginx-แแ
แฏแแ แฃแแแ แแแแแแกแขแแแแ แแ แแ แแแฃแจแแแ Nginx แแแ แกแแ แแแ แ. sa-frontend/build
แกแแฅแแฆแแแแแจแ [your_nginx_installation_dir]/html
.
แแ แแแแแแแแ, แคแแแแ แฌแแ แแแแฅแแแแแ React แแแแแแแชแแแก แแกแแแแแแแก แแ แแก index.html
แฎแแแแแกแแฌแแแแแ แแฅแแแแ [your_nginx_installation_dir]/html/index.html
. แแก แแ แแก แคแแแแ, แ แแแแแกแแช แแแแฃแแแกแฎแแแแแ, Nginx แกแแ แแแ แ แฃแจแแแแก แแแกแแ แฌแแแแแแกแแก. แกแแ แแแ แ แแแแคแแแฃแ แแ แแแฃแแแ แแแ แขแแ แแแกแแกแแแแแ 80
, แแแแ แแ แแฅแแแ แจแแแแซแแแแ แแแแแแแคแแแฃแ แแ แแ แแก แแกแ, แ แแแแ แช แแกแฃแ แ แคแแแแแก แ แแแแฅแขแแ แแแแ [your_nginx_installation_dir]/conf/nginx.conf
.
แแฎแแ แแแฎแกแแแแ แแฅแแแแ แแ แแฃแแแ แ แแ แแแแแแแ localhost:80
. แแฅแแแ แแแฎแแแ React แแแแก แแแแ แแก.
React แแแแแแแชแแ, แ แแแแแกแแช แแแกแแฎแฃแ แแแ Nginx แกแแ แแแ แ
แแฃ แแฎแแ แจแแแขแแแแ แ แแแแ แแแแแแ แจแ Type your sentence
แแ แแแแญแแ แแ แฆแแแแแก Send
- แแ แแคแแ แ แแแฎแแแแ. แแแแ แแ, แแฃ แแแแกแแแก แแแแแแแ แแแแแ, แแฅ แแแฎแแแ แจแแชแแแแแก แจแแขแงแแแแแแแแแก. แแแแกแแแแแก, แ แแ แแแแแแแ แแฃแกแขแแ แกแแ แฎแแแแ แแก แจแแชแแแแแแ, แแแแแแแแแแแแ แแแแแชแฎแแแแก แแแแ.
โFront-end แแแแแแแชแแแก แแแแแก แแแแแแแ
แคแแแแแก แแแแก แแฃแงแฃแ แแ App.js
, แฉแแแ แแฎแแแแแ, แ แแ แฆแแแแแแ แแแญแแ แแ Send
แแแแแแก แฃแฌแแแแแก analyzeSentence()
. แแ แแแแแแแก แแแแ แแแฉแแแแแแแ แฅแแแแแ. แแแแแแ แแฃแแแ, แงแฃแ แแแฆแแแ แแแแฅแชแแแ แแ แคแแฅแขแก, แ แแ แแแแแแฃแแ แฎแแแแกแแแแก, แ แแแแแแแช แแ แแก แคแแ แแแก แแแแแแขแแ แ # ะะพะผะตั
แแแแแก แฅแแแแแ แแแชแแแฃแแแ แแแแแแ แขแแแ. แแแแแแแแฃแ แแ, แฉแแแ แแแแแแแแแแแแแ แกแฎแแ แแแแแก แคแ แแแแแแขแแแก.
analyzeSentence() {
fetch('http://localhost:8080/sentiment', { // #1
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
sentence: this.textField.getValue()})// #2
})
.then(response => response.json())
.then(data => this.setState(data)); // #3
}
1. URL, แ แแแแแแแช แจแแกแ แฃแแแแฃแแแ POST แแแแฎแแแแ. แแก แแแกแแแแ แแ แแแแแแแ แแแแแแแชแแแ, แ แแแแแแช แแแแแแแ แแกแแ แแแแฎแแแแแแก.
2.แแแแแชแฎแแแแก แแแแแแแแแแ แแแแฎแแแแแก แแ แแแแ. แแฅ แแ แแก แแแแฎแแแแแก แแ แแแแแก แแแแแแแแ:
{
sentence: "I like yogobella!"
}
3.แ แแแแกแแช แแแแฎแแแแแแ แแแกแฃแฎแ แแแแฆแแแ, แแแแแแแแแขแแก แแแแแแแ แแแแ แแแแแฎแแแแแ. แแก แแฌแแแแก แแแแแแแแแขแแก แฎแแแแฎแแ แแแแแชแแแแก. แแฃ แฉแแแ แแแแแฆแแแ แแแแแชแแแแแก (แแแฃ JSON แแแแแฅแขแก, แ แแแแแแช แจแแแชแแแก แจแแงแแแแแ แแแแแชแแแแแก แแ แแแแแแแแแ แขแแฅแกแขแฃแ แฅแฃแแแก), แแแแแแแขแแแ แแแแแแแแแขแก Polarity
แกแแแแ แแแ แแแแแ แแแแแแงแแคแแแแแฃแแแ. แแ, แ แแแแ แแฆแแฌแแ แ แแแแแแแแแขแก:
const polarityComponent = this.state.polarity !== undefined ?
<Polarity sentence={this.state.sentence}
polarity={this.state.polarity}/> :
null;
แ แแแแ แช แฉแแแก, แแแแ แกแแแแแแ แแแ แแแ แแฃแจแแแแก. แแแแแช แ แ แแ แแก แแฅ แชแฃแแ? แแฃ แฉแแแแแแ, แ แแ แแ แแแกแแแแ แแแ, แ แแแแแแแแแช แแแแแแแชแแ แชแแแแแแก POST แแแแฎแแแแแก แแแแแแแแแก, แฏแแ แแ แแคแแ แแ, แ แแช แแ แแแแฎแแแแแก แแแฆแแแแก แแ แแแแฃแจแแแแแแก แจแแซแแแแก, แแแจแแ แแแกแแแฃแขแฃแ แแ แแแ แแแแ แแฅแแแแแ. แแแ แซแแ, แแแกแแแแ แแแ แจแแแแกแฃแแ แแแแฎแแแแแแแก แแแแฃแจแแแแแ http://localhost:8080/sentiment
, แฉแแแ แแแญแแ แแแแ แแแ แแแแแแแชแแแก แแแจแแแแ Spring-แแ แแแคแฃแซแแแแฃแแ.
แฉแแแ แแแญแแ แแแแ แกแแแแแแคแฎแฃแแ แแแแแแแชแแ, แ แแแแแกแแช แจแแฃแซแแแ แแแแฆแแก POST แแแแฎแแแแ
โ แแแแแคแฎแฃแแแก แกแแคแฃแซแแแแแ แแแ แแแแแแแชแแแก แแแงแแแแแ
Spring แแแแแแแชแแแก แแแแกแแแแแกแแแแแ แแญแแ แแแแแ JDK8 แแ Maven แแ แกแแแแแแแแ แแแแคแแแฃแ แแ แแแฃแแ แแแ แแแแก แชแแแแแแแ. แแ แงแแแแแคแ แแก แแแแแกแขแแแแ แแแแก แจแแแแแ แจแแแแซแแแแ แแแแแแ แซแแ แแฃแจแแแแ แฉแแแแก แแ แแแฅแขแแ.
โแแแแแแแชแแแก แจแแคแฃแแแ jar แคแแแแจแ
แขแแ แแแแแแแก แแแแแงแแแแแแ แแแแแแแ แกแแฅแแฆแแแแแจแ sa-webapp
แแ แจแแแงแแแแแ แจแแแแแแ แแ แซแแแแแ:
mvn install
แกแแฅแแฆแแแแแจแ แแ แแ แซแแแแแแก แจแแกแ แฃแแแแแก แจแแแแแ sa-webapp
แแแ แแฅแขแแ แแ แจแแแฅแแแแแ target
. แกแฌแแ แแ แแฅ แแแแแแแกแแแแ Java แแแแแแแชแแ, แจแแคแฃแแฃแแ jar แคแแแแจแ, แฌแแ แแแแแแแแแ แคแแแแแ sentiment-analysis-web-0.0.1-SNAPSHOT.jar
.
โ Java แแแแแแแชแแแก แแแจแแแแ
แแแแแแแ แกแแฅแแฆแแแแแจแ target
แแ แแแฃแจแแแ แแแแแแแชแแ แจแแแแแแ แแ แซแแแแแแ:
java -jar sentiment-analysis-web-0.0.1-SNAPSHOT.jar
แแ แแ แซแแแแแแก แจแแกแ แฃแแแแแกแแก แแแฎแแแแ แจแแชแแแแ. แแแกแ แแแแแกแฌแแ แแแแก แแแกแแฌแงแแแแ, แฉแแแ แจแแแแแซแแแ แแแแแแแแแแแแ แแแแแแแแแแกแแก แแแขแแแแแ แกแขแแแแก แแแแแแก แแแแแชแแแแแจแ:
Error creating bean with name 'sentimentController': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'sa.logic.api.url' in value "${sa.logic.api.url}"
แฉแแแแแแแก แแฅ แแแแแแ แแ แแแแจแแแแแแแแก แแแ แแแแแแก แจแแฃแซแแแแแแแแก แฎแกแแแแแ sa.logic.api.url
. แแแแแ แแแแแแแแแแแแ แแแแ, แกแแแแช แฎแแแแ แจแแชแแแแ.
โ Java แแแแแแแชแแแก แแแแแก แแแแแแแ
แแฅ แแ แแก แแแแแก แแแฌแงแแแขแ, แกแแแแช แฎแแแแ แจแแชแแแแ.
@CrossOrigin(origins = "*")
@RestController
public class SentimentController {
@Value("${sa.logic.api.url}") // #1
private String saLogicApiUrl;
@PostMapping("/sentiment")
public SentimentDto sentimentAnalysis(
@RequestBody SentenceDto sentenceDto)
{
RestTemplate restTemplate = new RestTemplate();
return restTemplate.postForEntity(
saLogicApiUrl + "/analyse/sentiment", // #2
sentenceDto, SentimentDto.class)
.getBody();
}
}
- แก
entimentController
แแ แแก แแแแsaLogicApiUrl
. แแแก แฆแแ แแแฃแแแแแก แแแแแแก แฅแแแแแsa.logic.api.url
. - แฎแแแ
saLogicApiUrl
แแแ แแแแแแแก แฆแแ แแแฃแแแแแก/analyse/sentiment
. แแกแแแ แแ แแแ แฅแแแแแ แแแกแแแแ แแก แแแแ แแกแแ แแแกแแแ แแแกแแ แแแแ, แ แแแแแแช แแฎแแ แชแแแแแแก แขแแฅแกแขแแก แแแแแแแก.
โ แฅแแแแแแก แฆแแ แแแฃแแแแแก แแแงแแแแแ
แแแแแคแฎแฃแแแ, แฅแแแแแแก แแแแจแแแแแแแแแแก แแแแฃแแแกแฎแแแแ แฌแงแแ แ แแ แแก แคแแแแ application.properties
, แ แแแแแแช แจแแแแซแแแแ แแฎแแแแ sa-webapp/src/main/resources
. แแแแ แแ แแแกแ แแแแแงแแแแแ แแ แแ แแก แฅแแแแแแก แแแแจแแแแแแแแแแก แแแงแแแแแแก แแ แแแแแ แแ แแแ. แแฅแแแ แแกแแแ แจแแแแซแแแแ แแแแก แแแแแแแแ แจแแแแแแ แแ แซแแแแแแ:
java -jar sentiment-analysis-web-0.0.1-SNAPSHOT.jar --sa.logic.api.url=WHAT.IS.THE.SA.LOGIC.API.URL
แแ แฅแแแแแแก แฆแแ แแแฃแแแแ แฃแแแ แแแฃแแแแแแแแก แฉแแแแ Python แแแแแแแชแแแก แแแกแแแแ แแแ.
แแแกแ แแแแคแแแฃแ แแชแแแ, แฉแแแ แแแฃแแแแแแ Spring แแแ แแแแแแแชแแแก, แกแแ แฃแแแ แฌแแแแแแก แขแแฅแกแขแแก แแแ แฉแแแแก แแแแฎแแแแแแแก แจแแกแแกแ แฃแแแแแแ.
แแแแกแแแแแก, แ แแ แแ แแแแแ แแฃแแแ แฉแแแแ แชแฎแแแ แแแ, แฉแแแ แแแแแแฌแงแแแขแ, แ แแ Python แแแแแแแชแแ แฎแแแแแกแแฌแแแแแ แแฅแแแแ แแแกแแแแ แแแ localhost:5000
แแ แจแแแชแแแแ แแ แแแแแแฌแงแแ แแก. แจแแแแแแ, Spring แแแแแแแชแแแก แแแฌแงแแแแก แแ แซแแแแแ แแกแ แแแแแแงแฃแ แแแ:
java -jar sentiment-analysis-web-0.0.1-SNAPSHOT.jar --sa.logic.api.url=http://localhost:5000
แฉแแแแก แกแแกแขแแแแก แแแแแ Python แแแแแแแชแแ
แแฎแแ แฉแแแ แฃแแ แแแแ แฃแแแ แแแแฃแจแแแ Python แแแแแแแชแแ แแ แกแแกแขแแแ แแแฃแจแแแแแก แแกแ, แ แแแแ แช แแแกแแแแแแแแแ.
โแแแแแแแก แแแแแแแชแแแก แแแงแแแแแ
Python-แแก แแแแแแแชแแแก แแแกแแจแแแแแ, แแฅแแแ แฃแแแ แแฅแแแแแ แแแแแกแขแแแแ แแแฃแแ Python 3 แแ Pip แแ แฃแแแ แแฅแแแแแ แกแฌแแ แแ แแแงแแแแแฃแแ แแแ แแแแก แจแแกแแแแแแกแ แชแแแแแแแ.
โแแแแแแแแแแฃแแแแแแแก แแแงแแแแแ
แแแแแแแ แแ แแแฅแขแแก แกแแฅแแฆแแแแแจแ sa-logic/sa
แแ แแแฃแจแแแ แจแแแแแแ แแ แซแแแแแแแ:
python -m pip install -r requirements.txt
python -m textblob.download_corpora
โแแแแแแแชแแแก แแแจแแแแ
แแแแแแแแแแฃแแแแแแแก แแแงแแแแแแ, แฉแแแ แแแแ แแแ แ แแแฃแจแแแ แแแแแแแชแแ:
python sentiment_analysis.py
แแ แแ แซแแแแแแก แจแแกแ แฃแแแแแก แจแแแแแ แแแแฃแแแแแแแ แจแแแแแแ:
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
แแก แแแจแแแแก, แ แแ แแแแแแแชแแ แแฃแจแแแแก แแ แแแแแแแ แแแแฎแแแแแแก localhost:5000/
โแแแแแแแก แแแแแแ
แแแแแ แแแแแแฎแแแแ Python-แแก แแแแแแแชแแแก แแแแก, แ แแแ แแแแแแแ, แ แแแแ แแแกแฃแฎแแแก แแก แแแแฎแแแแแแก:
from textblob import TextBlob
from flask import Flask, request, jsonify
app = Flask(__name__) #1
@app.route("/analyse/sentiment", methods=['POST']) #2
def analyse_sentiment():
sentence = request.get_json()['sentence'] #3
polarity = TextBlob(sentence).sentences[0].polarity #4
return jsonify( #5
sentence=sentence,
polarity=polarity
)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000) #6
- แแแแแฅแขแแก แแแแชแแแแแแแชแแ
Flask
. - แแแกแแแแ แแแก แแแแแแแแ POST-แแก แแแแฎแแแแแก แแแกแแฆแแแแ.
- แฅแแแแแแก แแแแแแแแ
sentence
แแแแฎแแแแแก แแ แแแแแแแ. - แแแแแแแฃแ แ แแแแแฅแขแแก แแแแชแแแแแแแชแแ
TextBlob
แแ แฆแแ แแแฃแแแแแก แแแฆแแแpolarity
แแแแฎแแแแแก แกแฎแแฃแแจแ แแแฆแแแฃแแ แแแ แแแแ แฌแแแแแแแแแแกแแแแก (แฉแแแแก แจแแแแฎแแแแแจแ แแก แแ แแก แแแแแแแแกแแแแก แฌแแ แแแแแแแแแ แแ แแแแแ แแ แฌแแแแแแแแแ). - แแแกแฃแฎแแก แแแแ แฃแแแแ, แ แแแแแก แขแแฅแกแขแ แจแแแชแแแก แจแแแแแแแแแแก แขแแฅแกแขแก แแ แแแกแแแแก แแแแแแแแแ แแแแแแแขแแ แก
polarity
. - Flask แแแแแแแชแแแก แแแจแแแแ, แ แแแแแแช แฎแแแแแกแแฌแแแแแ แแฅแแแแ แแฅ
0.0.0.0:5000
(แแกแแแ แจแแแแซแแแแ แแแกแแ แฌแแแแแ แคแแ แแแก แแแแกแขแ แฃแฅแชแแแก แแแแแงแแแแแแlocalhost:5000
).
แแฎแแ แแฃแจแแแแก แแแแ แแกแแ แแแกแแแ, แ แแแแแแแช แฅแแแแแ แแแแแแแชแแแก. แแกแแแ แแแแ แแ แแแ แแ แแแแแแแแแ แฃแ แแแแ แแแแแกแแแแก. แแ, แ แแแแ แแแแแแงแฃแ แแแ แแแแแแแชแแแก แแแแแ แแแ แแฃแจแแแแแก แแ แแขแแแแ.
แงแแแแ แแแแ แแกแแ แแแกแ, แ แแแแแแช แแแแแแแชแแแก แจแแแแแแแแแแแแจแ แจแแแแก, แฏแแแกแแฆ แแแแแแแ แแแแแจแแ
แแฎแแ, แกแแแแ แแแแแแ แซแแแแแ, แแแฎแกแแแแ React แแแ แแ แแฃแแแ แจแ แแ แจแแแชแแแแ แแแแแแแแแแ แ แแแแแแแแ แฌแแแแแแแแแ. แแฃ แงแแแแแคแแ แ แแแแแแแ แกแฌแแ แแ - แฆแแแแแแก แแแญแแ แแก แจแแแแแ Send
แแฅแแแ แแแฎแแแ แแแแแแแแก แจแแแแแแแก แขแแฅแกแขแฃแ แ แแแแแก แฅแแแแแ.
แจแแแแแ แแแแงแแคแแแแแแจแ แแแกแแฃแแ แแแ แแแแแ, แแฃ แ แแแแ แแแแแขแแ แแ แฉแแแแ แแแแ แแกแแ แแแกแแแ Docker แแแแขแแแแแ แแแจแ. แแก แแฃแชแแแแแแแแ แแแแกแแแแแก, แ แแ แแแแแแแแแก แแแแแแแชแแ Kubernetes แแแแกแขแแ แจแ แแแกแแจแแแแแ.
แแแแแ แแก แแแแขแแแแแ แแแ
แแแแขแแแแแ แแก แกแฃแ แแแ แแ แแก แแกแฃแแฃแฅแ, แแแแแฃแแแแแแแแ, แจแแกแ แฃแแแแแแ แแแแแขแ, แ แแแแแแช แจแแแชแแแก แแแแแแแชแแแก, แ แแแแแแช แแแแชแแแก แงแแแแแคแแ แก, แ แแช แกแแญแแ แแ แแแกแ แแแกแแจแแแแแ: แแแแแแแชแแแก แแแแ, แแแจแแแแแก แแแ แแแ, แกแแกแขแแแแก แฎแแแกแแฌแงแแแแ แแ แแแแแแแแแแแแ, แแแ แแแแขแ แแแ. แแแแขแแแแแ แแ แแแฃแแ แแ แแแ แแแแแแก แแแแแงแแแแแ แจแแกแแซแแแแแแแ แ แแแแ แช Linux, แแกแแแ Windows แแแ แแแแจแ แแ แงแแแแแแแแก แแ แแแแแ แแ แแแฃแจแแแแแก แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแฃแฎแแแแแแ.
แแก แแแจแแแแก, แ แแ แแแแขแแแแแ แแแแก แแแจแแแแ แจแแกแแซแแแแแแแ แแแแแกแแแแ แแแแแแฃแขแแ แแ, แแแ แจแแ แแก แกแแฌแแ แแแ แกแแ แแแ แแแแ แแ แแแแแกแแแแ แแแ แแแแจแ, แแแแจแ แฉแแกแแฃแแ แแแแแแแชแแแแ แแแฃแจแแแแแก แแแแแ แแแแ.
แแแแขแแแแแ แแแแก แแแฎแแกแแแแแแแแแแก แจแแกแแกแฌแแแแแ แแ แแแแแแแชแแแแแก แแแจแแแแแก แกแฎแแ แแแแแแแ แจแแกแแแแ แแแแแ, แแแแแ แจแแแฎแแแแ React แแแแแแแชแแแก แกแแ แแแกแแก แแแแแแแแก แแแ แขแฃแแแฃแ แ แแแแฅแแแแกแ แแ แแแแขแแแแแ แแก แแแแแงแแแแแแ.
โ React แแแแแแแชแแแก แกแขแแขแแแฃแ แ แคแแแแแแแก แกแแ แแแกแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แแแแแงแแแแแแ
แแแ แขแฃแแแฃแ แ แแแแฅแแแแแแก แแแแแงแแแแแแ แกแขแแขแแแฃแ แ แคแแแแแแแก แแแแแ-แแแขแ แแแแแแก แแ แแแแแแแแแก แแชแแแแแแแกแแก แจแแแแฎแแแแแ แจแแแแแแ แฃแแ แงแแคแแแ แแฎแแ แแแแ:
- แ แแกแฃแ แกแแแแก แแ แแแคแแฅแขแฃแ แ แแแแแงแแแแแ, แ แแแแแ แแแแแแฃแแ แแแ แขแฃแแแฃแ แ แแแแฅแแแ แแ แแก แกแ แฃแแ แแแแ แแชแแฃแแ แกแแกแขแแแ.
- แแแแขแคแแ แแแก แแแแแแแแแแฃแแแแ. แแก, แ แแช แแฃแจแแแแก แแแแแแ แ แแแแแแแแ แแ แแแแแแฃแขแแ แแ, แจแแแซแแแแ แแ แแแฃแจแแแก แฌแแ แแแแแแก แกแแ แแแ แแ.
- แแแ แขแฃแแแฃแ แ แแแแฅแแแแก แแแแแฌแงแแแขแแก แแแแ แแ แ แแกแฃแ แกแแแแ แแแขแแแกแแฃแ แ แแแกแจแขแแแแ แแแ.
Nginx แแแ แกแแ แแแ แ แแแกแแฎแฃแ แแแ แกแขแแขแแแฃแ แคแแแแแแก, แ แแแแแแแช แแฃแจแแแแแ แแแ แขแฃแแแฃแ แแแแฅแแแแจแ
แแฃ แแแแขแแแแแ แแแ แแแแแแงแแแแแ แแกแแแแกแ แแ แแแแแแแก แแแแแกแแญแ แแแแ, แแแจแแ แแแ แขแฃแแแฃแ แแแแฅแแแแแแแ แจแแแแ แแแแ, แจแแแซแแแแ แแฆแแแแจแแแก แจแแแแแแ แซแแแแ แ แแฎแแ แแแแ:
- แ แแกแฃแ แกแแแแก แแคแแฅแขแฃแ แ แแแแแงแแแแแ: แแแแ แแชแแฃแ แกแแกแขแแแแกแแแ แแฃแจแแแแ Docker-แแก แแแแแงแแแแแแ.
- แแแแขแคแแ แแแก แแแแแฃแแแแแแแแแ. แแแแขแแแแแ แ, แ แแแแแแช แแแแแแแแแ แก แจแแฃแซแแแ แแแฃแจแแแก แกแแแฃแแแ แแแแแแฃแขแแ แแ, แแแฃแจแแแแแก แงแแแแแแ.
- แแกแฃแแฃแฅแ แแแแแแแแแ แแแแแกแแฎแฃแแแแแก แคแแแแแแก แแแแแงแแแแแแ.
Nginx แแแ แกแแ แแแ แ, แ แแแแแแช แแแกแแฎแฃแ แแแ แแแแขแแแแแ แจแ แแแจแแแแฃแ แกแขแแขแแแฃแ แคแแแแแแก
แฉแแแ แแฎแแแแ แ แแแแแแแแ แแฃแแฅแขแจแ แจแแแแแแ แแ แแแ แขแฃแแแฃแ แ แแแแฅแแแแแ แแ แแแแขแแแแแ แแแ, แแแแ แแ แแกแแช แกแแแแแ แแกแแ แแแแขแแแแแ แแแแก แกแแซแแแแ แแก แจแแกแแกแฌแแแแแ.
โ แแแแขแแแแแ แแก แกแฃแ แแแแก แจแแฅแแแ React แแแแกแแแแก
Docker แแแแขแแแแแ แแก แซแแ แแแแแ แกแแแจแแแแแแ แแแแแ แแ แแก แคแแแแ Dockerfile
. แแ แคแแแแแก แแแกแแฌแงแแกแจแ แฉแแแฌแแ แแแ แแแแขแแแแแ แแก แกแแแแแแกแ แกแฃแ แแแ, แจแแแแแ แจแแแแก แแแกแขแ แฃแฅแชแแแแแก แแแแแแแแแแ แแแ, แกแแแแช แแแแแแแแฃแแแ, แแฃ แ แแแแ แฃแแแ แจแแฅแแแแ แแแแขแแแแแ แ, แ แแแแแแช แแแแแแแงแแคแแแแแก แแแแแแแชแแแก แกแแญแแ แแแแแแก.
แกแแแแ แคแแแแแแ แแฃแจแแแแแก แแแแแฌแงแแแ Dockerfile
แแแแแแฎแกแแแ แ แ แ แแแแแแแแแ แแแแกแแแแแก, แ แแ React แแแแแแแชแแแก แคแแแแแแ แแแแแแแแแแ Nginx แกแแ แแแ แแ แแกแแขแแแ แแแ:
- React แแแแแแแชแแแก แแแแแขแแก แจแแฅแแแ (
npm run build
). - Nginx แกแแ แแแ แแก แแแจแแแแ.
- แแแ แแฅแขแแ แแแจแ แจแแแแแแกแแก แแแแแ แแแ
build
แแ แแแฅแขแแก แกแแฅแแฆแแแแแแแsa-frontend
แกแแ แแแ แแก แกแแฅแแฆแแแแแจแnginx/html
.
แฅแแแแแ แจแแแแซแแแแ แแฎแแแแ แแแ แแแแแแแ แแแแขแแแแแ แแก แจแแฅแแแแกแ แแ แแแแแแแแ แแ แแแแแแฃแขแแ แแ แจแแกแ แฃแแแแฃแ แแแแแฎแกแแแแแฃแ แแแฅแแแแแแแแก แจแแ แแก.
โDockerfile-แแก แแแแแแแแแ SA-Frontend แแแแแแแชแแแกแแแแก
แแแกแขแ แฃแฅแชแแแแ แฉแแ แแฃแแ Dockerfile
แแแแแชแฎแแแแกแแแแก SA-Frontend
, แจแแแแแแ แแฎแแแแ แแ แ แแฃแแแแกแแแ. แคแแฅแขแแ, แ แแ Nginx-แแก แแแแแแแแ แแแแก แแฃแแแแ แแแแแแแแ แซแแ แแแแแ
- แแฅแแแ แฃแแแ แแแแแแแแ Nginx แแแแแกแแฎแฃแแแแ แกแฃแ แแแแก แกแแคแฃแซแแแแ.
- แกแแฅแแฆแแแแแก แจแแแแแ แกแ
sa-frontend/build
แฃแแแ แแแแแแแแ แแ แกแฃแ แแแแก แกแแฅแแฆแแแแแจแnginx/html
.
แแฃ แแ แแฆแฌแแ แแแแ แคแแแแแ แแแแแแแแ Dockerfile
, แแแจแแ แแกแ แแแแแแงแฃแ แแแ:
FROM nginx
COPY build /usr/share/nginx/html
แ แแแแ แช แฎแแแแแ, แแฅ แงแแแแแคแแ แ แซแแแแแ แแแ แขแแแแ, แฎแแแ แคแแแแแก แจแแแแแ แกแ แกแแแแแแ แแแแแฎแแแ แแ แแแกแแแแแแช แแ แแฆแแแฉแแแแแ. แแก แคแแแแ แแฃแแแแแ แกแแกแขแแแแก แกแฃแ แแแแก แแแแแฆแแแแก nginx
แงแแแแแคแแ แแแ แแ แแแ, แ แแช แฃแแแ แแฅแแก แแ แแแแแแแแ แแ แแแ แแฅแขแแ แแแก แจแแแแแ แกแ build
แแแ แแฅแขแแ แแแจแ nginx/html
.
แแฅ แจแแแซแแแแ แแฅแแแแแ แจแแแแแฎแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แแแชแ แแฃแกแขแแ แกแแ แแแแแแแแแ แแ แคแแแแแแ แกแแฅแแฆแแแแแแแ build
, แแแฃ แกแแแแแ แแแฉแแแ แแแ /usr/share/nginx/html
. แกแแแแแแแแแแจแ, แแฅแแช แแ แแคแแ แแ แ แแฃแแ. แคแแฅแขแแ, แ แแ แจแแกแแแแแแกแ แแแคแแ แแแชแแ แจแแแแซแแแแ แแฎแแแแ แแฅ
โ แกแฃแ แแแแก แแฌแงแแแ แแ แกแแชแแแจแ แแขแแแ แแแ
แกแแแแ แจแแแซแแแแ แแแกแ แฃแแแแฃแ แกแฃแ แแแแ แแฃแจแแแแแก, แแก แฃแแแ แแแแแแแขแแแแ แกแฃแ แแแแแแก แกแแชแแแจแ. แแแแกแแแแแก แฉแแแ แแแแแแแงแแแแแ แฃแคแแกแ แฆแ แฃแแแแแ แแแคแฃแซแแแแฃแ แแแแแกแแฎแฃแแแแแก แฐแแกแขแแแแแก แแแแขแคแแ แแแก Docker Hub. แแฃแจแแแแแก แแ แแขแแแแ, แแฅแแแ แฃแแแ แแแแแแแแ แจแแแแแแ:
- แแแกแขแแแแชแแ
docker . - แแแ แแแแกแขแ แแ แแแ Docker Hub-แแก แกแแแขแแ.
- แจแแแแ แแฅแแแแก แแแแแ แแจแจแ แขแแ แแแแแแจแ แจแแแแแแ แแ แซแแแแแแก แแแจแแแแแ:
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD"
แแฎแแ แแฅแแแ แแญแแ แแแแแ, แขแแ แแแแแแแก แแแแแงแแแแแแ, แแแแแแแ แแแ แแฅแขแแ แแแจแ sa-frontend
แแ แแฅ แแแฃแจแแแ แจแแแแแแ แแ แซแแแแแ:
docker build -f Dockerfile -t $DOCKER_USER_ID/sentiment-analysis-frontend .
แแฅ แแ แฅแแแแแ แแกแแแแกแ แแ แซแแแแแแแ $DOCKER_USER_ID
แฃแแแ แจแแแชแแแแแก แแฅแแแแ แแแแฎแแแ แแแแแก แกแแฎแแแแ Docker Hub-แแ. แแแแแแแแแ, แแ แซแแแแแแก แแก แแแฌแแแ แจแแแซแแแแ แแกแ แแแแแแงแฃแ แแแแแแก: rinormaloku/sentiment-analysis-frontend
.
แแ แจแแแแฎแแแแแจแ, แแก แแ แซแแแแแ แจแแแซแแแแ แจแแแชแแ แแแก แแแกแแแ แแแแฆแแแแ -f Dockerfile
, แแแแแแแแ แกแแฅแแฆแแแแแจแ, แ แแแแแจแแช แฉแแแ แแแกแ แฃแแแแ แแ แแ แซแแแแแแก, แฃแแแ แแฅแแก แแก แคแแแแ.
แแแ แกแฃแ แแแแก แกแแชแแแจแ แแแกแแแแแแแแ, แฉแแแ แแแญแแ แแแแ แจแแแแแแ แแ แซแแแแแ:
docker push $DOCKER_USER_ID/sentiment-analysis-frontend
แแแกแ แแแกแ แฃแแแแแก แจแแแแแ, แจแแแแแฌแแแ แแฅแแแแ แกแแชแแแแแแก แกแแ Docker Hub-แแ, แ แแแ แแแฎแแ แกแฃแ แแแ แฌแแ แแแขแแแแ แแฅแแ แแแแแขแแแแแ แฆแ แฃแแแแแแ แกแแชแแแจแ.
โแแแแขแแแแแ แแก แแแจแแแแ
แแฎแแ แงแแแแแก แจแแฃแซแแแ แฉแแแแขแแแ แแแ แแ แแแฃแจแแแก แกแฃแ แแแ, แ แแแแแแช แชแแแแแแแ แ แแแแ แช $DOCKER_USER_ID/sentiment-analysis-frontend
. แแแแกแแแแแก แแฅแแแ แฃแแแ แจแแแกแ แฃแแแ แแ แซแแแแแแแแก แจแแแแแแ แแแแแแแแแแ แแแ:
docker pull $DOCKER_USER_ID/sentiment-analysis-frontend
docker run -d -p 80:80 $DOCKER_USER_ID/sentiment-analysis-frontend
แแฎแแ แแแแขแแแแแ แ แแฃแจแแแแก แแ แฉแแแ แจแแแแแซแแแ แแแแแแ แซแแแแ แแฃแจแแแแ แฉแแแแแแแก แกแแญแแ แ แกแฎแแ แกแฃแ แแแแแแก แจแแฅแแแแ. แแแแ แแ แกแแแแ แแแแแแ แซแแแแแ, แแแแแ แแแแแแแ แแแแแแแ 80:80
, แ แแแแแแช แแแฎแแแแแ แแแแแกแแฎแฃแแแแแก แแแจแแแแแก แแ แซแแแแแแจแ แแ แจแแแซแแแแ แแแแแแแแแแแ แฉแแแแแก.
- แแแ แแแแ แแแแแ แ
80
แแ แแก แฐแแกแขแแก แแแ แขแแก แแแแแ แ (แแแฃ แแแแแแฃแ แ แแแแแแฃแขแแ แ). - แแแแ แ แแแแแ แ
80
แแ แแก แแแแขแแแแแ แแก แแแ แขแ, แ แแแแแแแช แฃแแแ แแแแแแแกแแแแ แแแแก แแแแฎแแแแ.
แแแแแแฎแแแแ แจแแแแแแ แแแฃแกแขแ แแชแแ.
แฒแแ แขแแก แแแแแแแกแแแแ แแแแ
แกแแกแขแแแ แแแแแแแแก แแแแฎแแแแแแก แแแ แขแแแแ <hostPort>
แแแ แขแแแแ <containerPort>
. แแแฃ แแแ แขแจแ แจแแกแแแ 80
แแแแแแฃแขแแ แ แแแแแแแกแแแแ แแแแฃแแแ แแแ แขแจแ 80
แแแแขแแแแแ แ.
แแแ แขแแแแ แแแงแแแแแฃแแ 80
แแแฎแกแแแแแ แแแแแแแแ แแ แแแแแแฃแขแแ แแ, แจแแแแซแแแแ แแแแแแแชแแแแ แฌแแแแแ แแ แแแแแแฃแขแแ แแแแ localhost:80
. แแฃ แแฅแแแแก แกแแกแขแแแแก แแ แแฅแแก Docker-แแก แแฎแแ แแแญแแ แ, แจแแแแซแแแแ แแแแแแแชแแ แแแฃแจแแแ Docker-แแก แแแ แขแฃแแแฃแ แแแแฅแแแแแ, แ แแแแแก แแแกแแแแ แแแช แแกแ แแแแแแงแฃแ แแแ <docker-machine ip>:80
. Docker แแแ แขแฃแแแฃแ แ แแแแฅแแแแก IP แแแกแแแแ แแแก แแแกแแ แแแแแแ, แจแแแแซแแแแ แแแแแแงแแแแ แแ แซแแแแแ docker-machine ip
.
แแ แแขแแแแ, แ แแแแ แช แแ แฌแแแ แแแแแแแชแแแก แแแแขแแแแแ แ แฌแแ แแแขแแแแ แแแแฅแแแแแแแ, แแฅแแแ แฃแแแ แจแแแแซแแแ แแแกแ แแแแ แแแก แแแฎแกแแ แแ แแฃแแแ แจแ.
โ.dockerignore แคแแแแ
แแแแแแแชแแแก แกแฃแ แแแแก แแแแแ SA-Frontend
แฉแแแ แจแแแแแซแแแ แจแแแแแฉแแแแ, แ แแ แแก แแ แแชแแกแ แซแแแแแ แแแแแ. แแก แแแแขแแ แฎแแแแ, แ แแ แแแแแกแแฎแฃแแแแแก แแแแแแก แแแแขแแฅแกแขแ แฃแแแ แแแแแแแแแแก Docker Daemon-แจแ. แแแ แแฅแขแแ แแ, แ แแแแแแช แฌแแ แแแแแแแแก build แแแแขแแฅแกแขแก, แแแชแแแฃแแแ แแ แซแแแแแแก แแแแ แแ แแฃแแแแขแแ docker build
. แฉแแแแก แจแแแแฎแแแแแจแ, แแ แแ แซแแแแแแก แแแแแก แแ แแก แฌแแ แขแแแ. แแก แแฌแแแแก แจแแแแแ แกแขแ แฃแฅแขแฃแ แแก, แ แแแแแแช แจแแแแก แจแแแ แแแแก แแแแขแแฅแกแขแจแ:
sa-frontend:
| .dockerignore
| Dockerfile
| package.json
| README.md
+---build
+---node_modules
+---public
---src
แแแแ แแ แแฅ แแ แกแแแฃแแ แงแแแแ แกแแฅแแฆแแแแแแแ แแฎแแแแ แกแแฅแแฆแแแแ แแแญแแ แแแแ build
. แกแฎแแ แ แแแแก แฉแแแแขแแแ แแแ แแ แแแก แแแ แแแแ. แแฅแแแ แจแแแแซแแแแ แแแแฉแฅแแ แแ แแจแแแแแแแแ Docker-แแก แแแแแแแแแ, แ แแแแแ แแแ แแฅแขแแ แแแแแก แแแแแ แแ แแแ แฃแแแ แแแฎแแแก. แแแแกแแแแแก แฉแแแ แแแญแแ แแแแ แคแแแแ .dockerignore
. แแฅแแแ, แแฃ แแชแแแแ แคแแแแก .gitignore
, แแ แคแแแแแก แกแขแ แฃแฅแขแฃแ แ แแแแแ แแแชแแแแ แแฅแแแแ. แแแกแจแ แฉแแแแแแแแแแ แแแ แแฅแขแแ แแแแ, แ แแแแแแ แแแแแ แแ แแแแช แแแแแกแแฎแฃแแแแแก แแแแแแก แกแแกแขแแแแก แจแแฃแซแแแ. แฉแแแแก แจแแแแฎแแแแแจแ, แแ แคแแแแแก แจแแแแแ แกแ แแกแ แแแแแแงแฃแ แแแ:
node_modules
src
public
แคแแแแ .dockerignore
แฃแแแ แแงแแก แแแแแ แกแแฅแแฆแแแแแจแ, แ แแแแ แช แคแแแแ Dockerfile
. แแฎแแ แกแฃแ แแแแก แแฌแงแแแแก แ แแแแแแแแ แฌแแแ แแแกแญแแ แแแแ.
แแฎแแ แแแแแ แแแแฃแแแแแแแแ แกแฃแ แแแก Java แแ แแแ แแแแกแแแแก.
โ แแแแขแแแแแ แแก แกแฃแ แแแแก แจแแฅแแแ Java แแแแแแแชแแแกแแแแก
แแฅแแแ แแชแแ แ แ แแ แฃแแแ แแกแฌแแแแแ แงแแแแแคแแ แ, แ แแช แแญแแ แแแแแ แแแแขแแแแแ แแก แกแฃแ แแแแแแก แจแแกแแฅแแแแแแ. แแแแขแแ แแก แแแแงแแคแแแแแ แซแแแแแ แแแแแ แแฅแแแแ.
แแแฎแกแแแแ แคแแแแ Dockerfile
, แ แแแแแแช แแแแแแ แแแแก แแ แแแฅแขแแก แกแแฅแแฆแแแแแจแ sa-webapp
. แแฃ แฌแแแแแแฎแแแ แแ แคแแแแแก แขแแฅแกแขแก, แแแจแแ แแแกแจแ แจแแฎแแแแแแ แแฎแแแแ แแ แแฎแแ แแแแกแขแ แฃแฅแชแแแก, แ แแแแแแแช แแฌแงแแแ แกแแแแแแซแ แกแแขแงแแแแแ ENV
ะธ EXPOSE
:
ENV SA_LOGIC_API_URL http://localhost:5000
โฆ
EXPOSE 8080
แกแแแแแแซแ แกแแขแงแแ ENV
แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแชแฎแแแแ แแแ แแแแก แชแแแแแแแ Docker แแแแขแแแแแ แแแจแ. แแแ แซแแ, แฉแแแแก แจแแแแฎแแแแแจแ, แแก แกแแจแฃแแแแแแก แแแซแแแแ แแแแงแแแแ URL แแแแแแแชแแแก API-แแ แฌแแแแแแกแแแแก, แ แแแแแแช แแฎแแ แชแแแแแแก แขแแฅแกแขแแก แแแแแแแก.
แกแแแแแแซแ แกแแขแงแแ EXPOSE
แกแแจแฃแแแแแแก แแแซแแแแ แฃแแฎแ แแ Docker-แก แแแ แขแแก แแแฎแกแแ. แฉแแแ แแแแแ แแแ แแ แแแ แขแแก แแแแแงแแแแแแก แแแแแแแชแแแกแแแ แแฃแจแแแแแกแแก. แแฅ แจแแแแซแแแแ แแแฎแแ แแก Dockerfile
แแแแแชแฎแแแแกแแแแก SA-Frontend
แแกแแแ แแ แซแแแแแ แแ แแ แกแแแแแก. แแก แแ แแก แแฎแแแแ แแแแฃแแแแขแแชแแแก แแแแแแแแกแแแแก, แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแก แแแแกแขแ แฃแฅแชแแ แแ แแก แแแแแฎแแแแแกแแแแก Dockerfile
.
แกแฃแ แแแแก แแแแแ แแ แกแแชแแแจแ แแแแแขแแแ แแฃแกแขแแ แแกแ แแแแแแงแฃแ แแแ, แ แแแแ แช แฌแแแ แแแแแแแแ. แแฃ แฏแแ แแแแแ แแ แฎแแ แ แแแ แฌแแฃแแแแฃแแ แแฅแแแแก แจแแกแแซแแแแแแแแแจแ, แจแแกแแแแแแกแ แแ แซแแแแแแแ แจแแแแซแแแแ แแฎแแแแ แคแแแแจแ README.md
แกแแฅแแฆแแแแแจแ sa-webapp
.
โแแแแขแแแแแ แแก แกแฃแ แแแแก แจแแฅแแแ แแแแแแแก แแแแแแแชแแแกแแแแก
แแฃ แแแแแแฎแแแแแ แคแแแแแก แจแแแแแ แกแก Dockerfile
แกแแฅแแฆแแแแแจแ sa-logic
แแฅ แแแ แแคแแ แแฎแแแก แแแ แแแแแแ. แแแแแกแแฎแฃแแแแแก แแแแแแก แแ แกแแชแแแจแ แแแแแขแแแแก แแ แซแแแแแแแ แแกแแแ แฃแแแ แแงแแก แแฅแแแแแแแก แแแชแแแแ, แแแแ แแ, แ แแแแ แช แฉแแแแ แกแฎแแ แแแแแแแชแแแแแก แจแแแแฎแแแแแจแ, แแกแแแ แจแแแแซแแแแ แแฎแแแแ แคแแแแจแ. README.md
แกแแฅแแฆแแแแแจแ sa-logic
.
โ แแแแขแแแแแ แแ แแแฃแแ แแแแแแแชแแแแแก แขแแกแขแแ แแแ
แจแแแแซแแแแ แแแแแ แ แแฆแแชแแก, แ แแช แแ แแแแแแแชแแแแ? แแแช แแ แจแแแแซแแแ. แแแแแ แจแแแแแแฌแแแ แฉแแแแ แแแแขแแแแแ แแแ.
- แแแแแฌแงแแ แแแแแชแฎแแแแก แแแแขแแแแแ แ
sa-logic
แแ แแแแแแแคแแแฃแ แแ แแ แแแ แขแแ แแแกแแกแแแแแ5050
:docker run -d -p 5050:5000 $DOCKER_USER_ID/sentiment-analysis-logic
- แแแแแฌแงแแ แแแแแชแฎแแแแก แแแแขแแแแแ แ
sa-webapp
แแ แแแแแแแคแแแฃแ แแ แแ แแแ แขแแ แแแกแแกแแแแแ8080
. แแแ แแ แแแแกแ, แฉแแแ แฃแแแ แแแแแงแแแแ แแแ แขแ, แ แแแแแแแช Python แแแแแแแชแแ แแแฃแกแแแแก Java แแแแแแแชแแแก แแฎแแแแแแก แแแ แแแแก แชแแแแแแก แฎแแแแฎแแ แแแแแญแแแแ.SA_LOGIC_API_URL
:$ docker run -d -p 8080:8080 -e SA_LOGIC_API_URL='http://<container_ip or docker machine ip>:5000' $DOCKER_USER_ID/sentiment-analysis-web-app
แแแแก แแแกแแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแ แแแแขแแแแแ แแก แแ Docker VM-แแก IP แแแกแแแแ แแ, แแฎแแแแ แคแแแแ
แแแแแฌแงแแ แแแแแชแฎแแแแก แแแแขแแแแแ แ sa-frontend
:
docker run -d -p 80:80 $DOCKER_USER_ID/sentiment-analysis-frontend
แแฎแแ แงแแแแแคแแ แ แแแแ แแ แแก แแ แแฃแแแ แจแ แแแแแแแชแแแกแแแแก แแแกแแแแ แแแ localhost:80
แแ แจแแแแแฌแแแ แแแแแแแชแแ.
แแแฎแแแ แแแแแแแแแกแฌแแแแ, แ แแ แแฃ แจแแชแแแแ แแแ แขแก sa-webapp
, แแ แแฃ แแฅแแแ แแแ แแแแ Docker VM-แก, แแแแญแแ แแแแแ แคแแแแแก แ แแแแฅแขแแ แแแ App.js
แกแแฅแแฆแแแแแแแ sa-frontend
แแแแแแแ IP แแแกแแแแ แแแก แแ แแแ แขแแก แแแแ แแก แจแแชแแแแ analyzeSentence()
แแแซแแแแแแฃแแ แแแแแชแแแแแแก แแแชแแแแ แแแแแแแแ แ แแแคแแ แแแชแแแก แฉแแแแชแแแแแแ. แแแแก แจแแแแแ, แแฅแแแ แฃแแแ แแแแฌแงแแ แกแฃแ แแแ แแ แแแแแแงแแแแ แแแ.
แแกแ แแแแแแงแฃแ แแแ แฉแแแแ แแแแแชแฎแแแแก แแแแแ แแแ แแฎแแ.
แแแแ แแกแแ แแแกแแแ แแฃแจแแแแก แแแแขแแแแแ แแแจแ
แ แแแแฃแแ: แ แแขแแ แแแญแแ แแแแ Kubernetes แแแแกแขแแ แ?
แฉแแแ แแฎแแแฎแแ แแแแแแฎแแแแ แคแแแแแแก Dockerfile
, แแกแแฃแแ แ แแแแแ, แแฃ แ แแแแ แฃแแแ แจแแฅแแแแ แกแฃแ แแแแแ แแ แแแแแแขแแแแ แแกแแแ Docker แกแแชแแแจแ. แแแ แแ แแแแกแ, แแแกแฌแแแแแ แ แแแแ แแแแแฉแฅแแ แแ แกแฃแ แแแแแแก แจแแแ แแแ แคแแแแแก แแแแแงแแแแแแ .dockerignore
. แจแแแแแแ, แฉแแแแ แแแแ แแกแแ แแแกแแแ แแฎแแ แแฃแจแแแแก Docker แแแแขแแแแแ แแแจแ. แแฅ แจแแแซแแแแ แแฅแแแแแ แกแ แฃแแแแ แแแแแ แแแแแฃแแ แจแแแแแฎแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแขแแ แแแญแแ แแแแ Kubernetes. แแ แแแแฎแแแแ แแแกแฃแฎแ แแแแแแแแ แแ แแแกแแแแก แแแแ แ แแแฌแแแก. แแแแกแแแแจแ แแแแแฎแแแแ แจแแแแแแ แแแแฎแแ:
แแแแฃแจแแแ, แ แแ แฉแแแแ แขแแฅแกแขแแก แแแแแแแแก แแแ แแแแแแแชแแ แแแแฃแแแ แฃแแ แแแฎแแ แแแแ แแกแแคแแแแจแ. แงแแแแ แฌแฃแแก แแแแแแแแแแ แแแแฎแแแแ แแแแแก แแแก. แแก แแแจแแแแก, แ แแ แแแแ แแกแแ แแแกแแแ sa-webapp
ะธ sa-logic
แแฅแแแแ แฃแแแ แแแแแ แ แกแขแ แแกแแก แฅแแแจ. แ แแแแ แแแแแคแแ แแแแแ แแแแขแแแแแ แแแ, แ แแแแแแแช แแแฃแจแแแแแแ แแแแ แแกแแ แแแกแแแก?
แฌแงแแ แ: www.habr.com