From ed00c3fcd494aa3c088c5e73454ad8b70469afef Mon Sep 17 00:00:00 2001 From: Indrek Jentson Date: Sun, 17 Mar 2019 11:45:14 +0200 Subject: [PATCH] Konfiguratsioon muudetud docker-compose jaoks vastavaks Signed-off-by: Indrek Jentson --- Dockerfile | 46 ++++++++++--------------------- README.MD | 75 +++++++++++++++++++++++++------------------------- config_dist.js | 12 ++++---- 3 files changed, 59 insertions(+), 74 deletions(-) diff --git a/Dockerfile b/Dockerfile index ccabb26..428f5ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,4 @@ -# 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 -# +# DOCKERi skript KL-lausestaja ehitamiseks FROM debian:jessie @@ -29,29 +14,26 @@ 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' --single-branch keeleliin-wrapper && \ - mv keeleliin-wrapper/* . && \ - mv keeleliin-wrapper/.g* . && \ +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 && \ - npm install && \ 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 # Laadime alla EstCG -RUN cd /wrapper && \ - apt-get -y install perl && \ - git clone 'https://github.com/EstSyntax/EstCG.git' && \ - git clone 'https://gitlab.keeleressursid.ee/keeleliin/kl-lausestaja.git' && \ - cp kl-lausestaja/config_dist.js ./config.js && \ - cp kl-lausestaja/command.sh . && \ - chmod +x command.sh && \ - echo 'cd /wrapper && ls -l > /wrapper/logs/files.txt && ./docker_start.sh' > /start.sh && \ - chmod +x /start.sh +RUN apt-get -y install perl && \ + git clone 'https://github.com/EstSyntax/EstCG.git' + +COPY config_dist.js /wrapper/config.js +COPY command.sh /wrapper # Tarkvara X paigaldamine lõppeb @@ -63,4 +45,4 @@ VOLUME ["/wrapper/logs"] VOLUME ["/wrapper/files"] VOLUME ["/wrapper/tmp"] -CMD /start.sh +CMD /wrapper/docker_start.sh diff --git a/README.MD b/README.MD index ea405dc..78947e2 100644 --- a/README.MD +++ b/README.MD @@ -22,50 +22,51 @@ omapära ``` -## Projekti käivitamise ettevalmistamine dockeriga (Linuxis) -* Tee käesolevast projektist enda GIT-is koopia. -* Tutvu saadaoleva dokumentatsiooniga ja tee oma uue projekti failidesse vajalikud muudatused. Tavaliselt on vaja muuta faile +## 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-wc.git + ``` +* Tutvu saadaoleva dokumentatsiooniga ja kui vaja, siis tee projekti failidesse vajalikud muudatused. Tavaliselt on vaja muuta faile * config_dist.js * Dockerfile * README.MD * Salvesta tehtud muudatused - * git commit -a - * git push - -## Püüa loodud projekti paigaldada -* Kui su serveris veel pole Dockerit, siis paigalda see: http://docs.docker.com/engine/installation/ -* KÄIVITA REDIS SERVER, kui see juba ei käi: ``` - $ docker run --name kl_redis -d redis + $ git commit -a ``` -* Lae alla oma teenuse Dockerfile - * wget https://gitlab.keeleressursid.ee/keeleliin/kl-lausestaja/raw/master/Dockerfile - * Muuda allalaetud faili vastavalt vajadusele. Näiteks muuda #Expose port parameetrit vastavalt sellele, millisel pordil hakkab loodud teenus töötama. -* Loo dockeri Image fail (kl_lausestaja - Image nimi): +* Täienda konfiguratsioonifaili keeleliin-master/docker-compose.yml vastavalt failis keeleliin-master/README.MD kirjapandud juhistele. +Näiteks antud teenuse nimeks konfiguratsioonis on wordcount. +Jälgi, et config.js-is kirjeldatud teenuse port, Dockerfile #Expose port ja docker-compose.yml'is olev service.wordcount.port oleksid sama väärtusega. +* Valmista ette teenuse konteineri image: ``` - $ docker build -t kl_lausestaja . + $ cd keeleliin-master + $ docker-compose build wordcount ``` -* Loo teenuse seadistuste faili ja muude failide jaoks dockerivälised kaustad: +* Kui keeleliini rakendus juba töötab, siis käivita uue teenuse konteiner nii: ``` - $ cd /srv - $ mkdir -p keeleliin-lausestaja - $ mkdir -p keeleliin-lausestaja/config - $ mkdir -p keeleliin-lausestaja/wrapper - $ mkdir -p keeleliin-lausestaja/wrapper/files - $ mkdir -p keeleliin-lausestaja/wrapper/logs + $ docker-compose up -d wordcount + ``` +* 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 3006, siis peaks näha olema infot järgmistel lehtedel: + * http://kl-host:3006/ + * http://kl-host:3006/api/v1/check + * http://kl-host:3006/api/v1/statistics + * http://kl-host:3006/api/v1/service/install +* Soovi korral saab teenuse konteineris teha toiminguid, aga eeldatavasti ei ole vaja midagi täiendavat teha: + ``` + $ docker-compose exec wordcount bash + ``` +* Keeleliini üksiku teenuse (või kogu rakenduse) saab seisma panna nii: + ``` + $ docker-compose down wordcount + $ docker-compose down ``` -* Käivita loodud kl_lausestaja: -``` -$ docker run --name kl_lausestaja -d --link kl_redis:redis -p 3010:3010 -v /srv/keeleliin-lausestaja/config:/config -v /srv/keeleliin-lausestaja/wrapper/files:/wrapper/files -v /srv/keeleliin-lausestaja/wrapper/logs:/wrapper/logs kl_lausestaja -``` -* Muuda vajaduse korral teenuse seadistusi failis /srv/keeleliin-lausestaja/config/config.js. Jälgi, et config.js-is kirjeldatud teenuse port, Dockerfile #Expose port ja docker run -p PORT:PORT oleksid sama väärtusega. -* Soovi korral saab konteineris teha toiminguid järgmise käsuga (aga eeldatavasti ei ole vaja midagi täiendavat teha): -``` -$ docker exec -it kl_lausestaja bash -``` - * Konteinerist saab väljuda käsuga: Ctrl+P Ctrl+Q - -* Kui muutsid midagi, siis uuenda teenust: -``` -$ docker exec kl_lausestaja /wrapper/docker_update.sh -``` diff --git a/config_dist.js b/config_dist.js index 63fa2bf..5c270fe 100644 --- a/config_dist.js +++ b/config_dist.js @@ -1,16 +1,18 @@ var config = require('./global_config/global'); /* - * Teenuse url ilma pordita. Kasutatakse teenuse serverisse installeerimisel teenuse urli moodustamiseks: :/api/v1/ + * Teenuse komponendi ja serveri urlid ilma pordita. + * Kasutatakse teenuse serverisse installeerimisel teenuse urli moodustamiseks: :/api/v1/ */ -config.serverUrl = 'http://localhost'; +config.serviceUrl = 'http://lausestaja'; +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' } ]; -- GitLab