Commit 7c8c8e34 authored by Indrek Jentson's avatar Indrek Jentson

Teenuse konfiguratsiooni muutmine docker-compose jaoks sobivaks

parent b6184a0b
.project
.pydevproject
.idea
# DOCKERi skript
# OMA TEENUSE ettevalmistamisel asenda nii käesolevas failis kui ka failis README.MD string 'kl_teenus' sobiva nimega,
# näiteks sõnade loendaja 'wc' korral 'kl_wc'.
# Nimed 'github.com' ja 'username' tuleb asendada vastavalt kasutatavale GIT repositooriumile.
#
# DOCKERi paigaldamiseks ja käivitamiseks:
# cd /soovitud/asukoht/oma/teenuse/koodile/serveris
# wget https://github.com/username/kl_teenus/raw/master/Dockerfile
# docker build -t kl_teenus .
# docker run --name kl_redis --rm --restart=no redis
# docker run --name kl_teenus -d --link kl_redis:redis -p 3003:3003 -v /etc/wrapper/teenus/:/config kl_teenus
#
# DOCKERi seiskamiseks:
# docker kill kl_teenus
# docker rm kl_teenus
#
FROM debian:jessie
# Kui Debianil pole vaikimisi kaasas GCC vajalikke teeke vms, siis tuleb need ka lasta installida.
RUN apt-get update && \
apt-get -y install curl sudo pkg-config && \
apt-get -y install curl sudo gnupg && \
apt-get install -y --no-install-recommends apt-utils && \
curl -sL https://deb.nodesource.com/setup | sudo bash - && \
curl -sL https://deb.nodesource.com/setup_10.x | sudo bash - && \
apt-get -y install build-essential nodejs wget && \
apt-get -y install g++ python3-dev python-dev libpython3-dev libpython-dev python3-pip python3-wheel python3-numpy swig && \
apt-get -y install git libfreetype6-dev libc6-dev zlib1g-dev libpng-dev && echo "Installed 2"
apt-get -y install git libfreetype6-dev libc6-dev zlib1g-dev libpng-dev && \
apt-get -y install git && echo "Installed NODE.JS and PYTHON 3"
# Tagame värskeima PIPi olemasolu
......@@ -37,22 +23,23 @@ RUN npm install -g forever
# Valmistame ette koodi, mida me DOCKERis kasutama hakkame. Siinkohal peaks plaanima, et mis failid kus kataloogis peaks olema
RUN mkdir -p /wrapper && mkdir -p /config && mkdir -p /wrapper/files && mkdir -p /wrapper/tmp && mkdir -p /wrapper/logs && \
cd /wrapper && \
git clone 'https://gitlab.keeleressursid.ee/keeleliin/keeleliin-wrapper.git' && \
mv keeleliin-wrapper/* . && \
mv keeleliin-wrapper/.g* . && \
npm install && \
echo "NPM is installed"
RUN git clone 'https://gitlab.keeleressursid.ee/keeleliin/keeleliin-wrapper.git' --single-branch wrapper && \
mkdir -p /config && mkdir -p /wrapper/files && mkdir -p /wrapper/tmp && mkdir -p /wrapper/logs && \
cd wrapper && npm install && \
chmod +x *.sh && \
echo "NPM is installed"
# Määratleme aktiivse töökataloogi
WORKDIR /wrapper
# SIIA ALLA lisa kõik installeerimise käsud, mis on vajalikud sisulist tööd tegeva tarkvara X paigaldamiseks.
# Tarkvara X paigaldamine algab
# Tarkvara X paigaldamine algab
COPY config_dist.js /wrapper/config.js
RUN cd /wrapper && \
git clone 'https://gitlab.keeleressursid.ee/keeleliin/kl-wordcloud.git' && \
cp kl-wordcloud/config_dist.js . && \
git clone 'https://gitlab.keeleressursid.ee/keeleliin/word_cloud_est.git' && \
echo "KL-WORDCLOUD is installed"
RUN git clone 'https://gitlab.keeleressursid.ee/keeleliin/word_cloud_est.git' && \
echo "KL-WORDCLOUD is installed"
# wordcloud_cli.py jaoks on vajalikud setuptools ja numpy
......@@ -60,8 +47,8 @@ RUN pip install setuptools
RUN pip install --upgrade numpy
RUN pip install Pillow
RUN cd /wrapper/word_cloud_est && \
python setup.py install && \
cp /wrapper/word_cloud_est/build/scripts-2.7/wordcloud_cli.py /wrapper
python setup.py install && \
cp /wrapper/word_cloud_est/build/scripts-2.7/wordcloud_cli.py /wrapper
# Tarkvara X paigaldamine lõppeb
......@@ -70,5 +57,7 @@ EXPOSE 3009
VOLUME ["/config"]
VOLUME ["/wrapper/logs"]
VOLUME ["/wrapper/files"]
VOLUME ["/wrapper/tmp"]
CMD cd /wrapper && ./docker_start.sh
CMD /wrapper/docker_start.sh
......@@ -2,6 +2,54 @@
Keeleliini teenus lemmatiseeritud tekstist sõnapilve tegemiseks.
## Komponendi docker-compose'ga kasutamise ettevalmistamine (Linuxis)
* Eeldame, et serveris on juba olemas järgmised projektid:
* https://gitlab.keeleressursid.ee/keeleliin/keeleliin-master.git
* https://gitlab.keeleressursid.ee/keeleliin/server.git
* https://gitlab.keeleressursid.ee/keeleliin/klient.git
* Tee käesolevast projektist enda serveri kettale kloon:
```
$ git clone https://gitlab.keeleressursid.ee/keeleliin/kl-wordcloud.git
```
* Tutvu saadaoleva dokumentatsiooniga ja kui vaja, siis tee projekti failidesse vajalikud muudatused. Tavaliselt on vaja muuta faile
* config_dist.js
* Dockerfile
* Salvesta tehtud muudatused
```
$ git commit -a
```
* Täienda konfiguratsioonifaili keeleliin-master/docker-compose.yml vastavalt failis keeleliin-master/README.MD kirjapandud juhistele.
Näiteks antud teenuse nimeks konfiguratsioonis on _wordcloud_.
Jälgi, et config.js-is kirjeldatud teenuse port, Dockerfile #Expose port ja docker-compose.yml'is olev service.wordcloud.port oleksid sama väärtusega.
* Valmista ette teenuse konteineri image:
```
$ cd keeleliin-master
$ docker-compose build wordcloud
```
* Kui keeleliini rakendus juba töötab, siis käivita uue teenuse konteiner nii:
```
$ docker-compose up -d wordcloud
```
* Kui keeleliini rakendus veel ei tööta, siis kogu rakendust korraga käivitakse nii:
```
$ docker-compose up -d
```
* Uue teenuse funktsioneerimist saab kontrollida, kui pöörduda veebilehitsejaga serveri teenusele määratud pordi poole. Kui serveri nimeks on 'kl-host' ja
teenuse pordiks näiteks 3009, siis peaks näha olema infot järgmistel lehtedel:
* http://kl-host:3009/
* http://kl-host:3009/api/v1/check
* http://kl-host:3009/api/v1/statistics
* http://kl-host:3009/api/v1/service/install
* Soovi korral saab teenuse konteineris teha toiminguid, aga eeldatavasti ei ole vaja midagi täiendavat teha:
```
$ docker-compose exec wordcloud bash
```
* Keeleliini üksiku teenuse (või kogu rakenduse) saab seisma panna nii:
```
$ docker-compose down wordcloud
$ docker-compose down
```
## Projekti käivitamise ettevalmistamine dockeriga (Linuxis)
* Tee käesolevast projektist enda GIT-is koopia.
......
var config = require('./global_config/global');
/*
* Teenuse url ilma pordita. Kasutatakse teenuse serverisse installeerimisel teenuse urli moodustamiseks: <url>:<port>/api/v1/
* Teenuse komponendi ja serveri urlid ilma pordita.
* Kasutatakse teenuse serverisse installeerimisel teenuse urli moodustamiseks: <config.serviceUrl>:<config.wrapper.port>/api/v1/
*/
config.serverUrl = 'http://localhost';
config.serviceUrl = 'http://wordcloud';
config.serverUrl = 'http://server';
/*
* Redis serveri andmed. Kui kasutatakse vaikeseadeid, siis pole vaja muuta
*/
config.redis = {
host: process.env.REDIS_PORT_6379_TCP_ADDR || "127.0.0.1",
port: process.env.REDIS_PORT_6379_TCP_PORT || 6379
host: 'redis',
port: 6379
};
/*
......@@ -18,7 +20,7 @@ config.redis = {
*/
config.integration = [
{
installUrl: 'http://keeleliin.keeleressursid.ee:3000/api/v1/service/install',
installUrl: 'http://server:3000/api/v1/service/install',
apiKey: 'server-wrapper-api-key'
}
];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment