Commit b7653409 authored by Indrek Jentson's avatar Indrek Jentson

Dokumentatsiooni kohendamine docker-compose'ga kasutamiseks

parent 86430664
# 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 teenus KL_WC konteineri ehitamiseks
#
FROM debian:jessie
......@@ -39,14 +26,16 @@ RUN git clone 'https://gitlab.keeleressursid.ee/keeleliin/keeleliin-wrapper.git'
WORKDIR /wrapper
# SIIA ALLA lisa kõik installeerimise käsud, mis on vajalikud sisulist tööd tegeva tarkvara X paigaldamiseks.
# Tarkvara X paigaldamine algab
# Kuna kasutame linuxi käsurea utiliiti, siis midagi spetsiaalset pole vaja lisada
# *** Tarkvara X paigaldamine algab ***
# Kuna kasutame linuxi käsurea utiliiti, siis midagi spetsiaalset pole vaja lisada.
# Eeldame, et projekti failid on Dockerfile'ga samas kataloogis ja saame need lihtsalt konteinerisse kopeerida:
COPY config_dist.js /wrapper/config.js
COPY command.sh /wrapper
# Tarkvara X paigaldamine lõppeb
# *** Tarkvara X paigaldamine lõppeb ***
# Expose port
EXPOSE 3006
......
......@@ -6,49 +6,52 @@ faili, milles on üks rida kujul
<ridade_arv> <sõnade_arv> <tähtede_arv> <maksimaalne_rea_pikkus>
```
## 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-wc/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_wc - 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_wc .
$ 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-wc
$ mkdir -p keeleliin-wc/config
$ mkdir -p keeleliin-wc/wrapper
$ mkdir -p keeleliin-wc/wrapper/files
$ mkdir -p keeleliin-wc/wrapper/logs
$ docker-compose up -d wordcount
```
* Käivita loodud kl_wc:
* Kui keeleliini rakendus veel ei tööta, siis kogu rakendust korraga käivitakse nii:
```
$ docker run --name kl_wc -d --link kl_redis:redis -p 3006:3006 -v /srv/keeleliin-wc/config:/config -v /srv/keeleliin-wc/wrapper/files:/wrapper/files -v /srv/keeleliin-wc/wrapper/logs:/wrapper/logs kl_wc
$ docker-compose up -d
```
* Muuda vajaduse korral teenuse seadistusi failis /srv/keeleliin-wc/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, aga eeldatavasti ei ole vaja midagi täiendavat teha:
* 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 exec -it kl_wc bash
$ docker-compose exec wordcount bash
```
* Konteinerist saab väljuda käsuga: Ctrl+P Ctrl+Q
* Kui muutsid midagi, siis uuenda teenust:
* Keeleliini üksiku teenuse (või kogu rakenduse) saab seisma panna nii:
```
$ docker exec kl_wc /wrapper/docker_update.sh
$ docker-compose down wordcount
$ docker-compose down
```
/*
* Teenuse konfigureerimise fail DOCKER-COMPOSE keskkonna jaoks.
*/
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://wordcount';
config.serviceUrl = 'http://wordcount';
config.serverUrl = 'http://server';
/*
* Redis serveri andmed. Kui kasutatakse vaikeseadeid, siis pole vaja muuta
......
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