Revize 7460ae47
Přidáno uživatelem Ondřej Váně před asi 5 roky(ů)
README.md | ||
---|---|---|
1 | 1 |
# Indexace a fulltextové vyhledávání v historických obrazových dokumentech - ANONYMOUS |
2 | 2 |
|
3 | 3 |
# Spuštění celé aplikace v dockeru |
4 |
- nainstalovat docker [návod zde](https://docs.docker.com/docker-for-windows/install/) |
|
5 |
- nastartovat docker `docker-machine start` |
|
4 |
## Stažení image z docker hubu a spuštění (pro zadavatele) |
|
5 |
- nainstalovat docker viz [Návody](#Návody) |
|
6 |
- nastartovat docker |
|
7 |
- stáhnout projekt nebo pouze soubory |
|
8 |
- [docker-composer.yml](docker-compose.yml) |
|
9 |
- [run.sh](run.sh) Linux/Mac nebo [run.bat](run.bat) Windows |
|
10 |
- v souboru docker-compose.yml všechny řádky, které obsahují buil |
|
11 |
- spustit skript `run` |
|
12 |
|
|
13 |
## Lokální vytvoření image a spuštění |
|
14 |
- nainstalovat docker viz Návody |
|
15 |
- nastartovat docker |
|
6 | 16 |
- přesunout se do root složky celého projektu (aswi2020anonymous) |
7 |
- spustit příkaz `docker-compose up -d --force-recreate` |
|
17 |
- spustit příkaz `docker-compose build` |
|
18 |
- spustit příkaz `docker-compose up -d` |
|
8 | 19 |
- `-d` flag spustí všechny kontejnery na pozadí, takže můžete terminál použít pro jiné účely. |
9 |
- `--force-recreate` flag zastaví všechny spuštěné staré kontejnery a vytvoří nové. |
|
10 | 20 |
- frontend nastartuje na adrese dockeru na portu 4200 |
11 | 21 |
- backend nastartuje na adrese dockeru na portu 8080 |
12 | 22 |
|
... | ... | |
20 | 30 |
- spuštění testů `ng test` a `ng e2e` |
21 | 31 |
|
22 | 32 |
### Spuštění v dockeru |
23 |
- nainstalovat docker [návod zde](https://docs.docker.com/docker-for-windows/install/)
|
|
33 |
- nainstalovat docker viz Návody
|
|
24 | 34 |
- nastartovat docker `docker-machine start` |
25 | 35 |
- přesunout se do složky ./fe/fulltextsearch |
26 | 36 |
- spustit příkaz pro vytvoření docker image `docker build -t dockerangular .` |
... | ... | |
28 | 38 |
- frontend nastartuje na adrese dockeru na portu 4200 |
29 | 39 |
|
30 | 40 |
## Backend - Spring boot |
41 |
### Spuštění lokálně |
|
42 |
- za pomocí IDE (Java 11) |
|
43 |
|
|
31 | 44 |
### Spuštění v dockeru |
32 |
- nainstalovat docker [návod zde](https://docs.docker.com/docker-for-windows/install/)
|
|
45 |
- nainstalovat docker viz Návody
|
|
33 | 46 |
- nastartovat docker `docker-machine start` |
34 | 47 |
- přesunout se do složky ./be/fulltextsearch |
35 | 48 |
- spustit příkaz pro vytvoření docker image `docker build -t dockerspring .` |
... | ... | |
40 | 53 |
- stáhnout si Solr [zde](https://lucene.apache.org/solr/downloads.html) |
41 | 54 |
- přesunout se do složky ...\solr-8.4.1\bin |
42 | 55 |
- nastartovat Solr příkazem `solr start` |
43 |
- vytvořit core "documents" příkazem `solr create -c documents` |
|
56 |
- vytvořit core "documents" příkazem `solr create -c documents` |
|
57 |
|
|
58 |
# Postup pro uvolnění nové verze a uložení na docker hub |
|
59 |
- spustit docker |
|
60 |
- povýšit verze v následujících souborech |
|
61 |
- backend [pom.xml](./be/fulltextsearch/pom.xml) (X.X.X-SNAPSHOT) |
|
62 |
- frontend [package.json](./fe/fulltextsearch/package.json) ("version": "X.X.X") |
|
63 |
- docker composer [docker-composer.yml](docker-compose.yml) (image: ondrejvane/fulltextsearch-backend:0.0.1 a ondrejvane/fulltextsearch-frontend:0.0.1) |
|
64 |
- přesunout se do root složky celého projektu (tam kde je soubor docker-composer.yml) |
|
65 |
- přihlásit se ke svému docker repository příkazem `docker-login`, poté zadat svoje uživatelské jméno a heslo do docker hubu |
|
66 |
- spustit příkaz `docker-compose build` |
|
67 |
- spustit příkaz `docker-compose push` |
|
68 |
- commitnout soubory s povýšenou verzí do gitu |
|
69 |
- vytvořit tag s uvolněnou verzí na gitu ke commitu (commit message: Version X.X.X released) |
|
70 |
|
|
71 |
# Návody |
|
72 |
- Instalace dockeru [návod zde](https://docs.docker.com/docker-for-windows/install/) |
|
73 |
- Instalace angularu [návod zde](https://angular.io/guide/setup-local) |
be/fulltextsearch/pom.xml | ||
---|---|---|
12 | 12 |
|
13 | 13 |
<groupId>cz.zcu.kiv.aswi</groupId> |
14 | 14 |
<artifactId>fulltextsearch</artifactId> |
15 |
<version>0.0.1-SNAPSHOT</version>
|
|
15 |
<version>0.0.0-SNAPSHOT</version>
|
|
16 | 16 |
<packaging>jar</packaging> |
17 | 17 |
<name>Fulltext Search</name> |
18 | 18 |
|
be/fulltextsearch/src/main/java/cz/zcu/kiv/aswi/fulltextsearch/IndexController.java | ||
---|---|---|
3 | 3 |
import cz.zcu.kiv.aswi.fulltextsearch.model.Query; |
4 | 4 |
import cz.zcu.kiv.aswi.fulltextsearch.model.QueryResponse; |
5 | 5 |
import org.apache.solr.client.solrj.SolrServerException; |
6 |
import org.springframework.web.bind.annotation.CrossOrigin; |
|
7 |
import org.springframework.web.bind.annotation.PostMapping; |
|
8 |
import org.springframework.web.bind.annotation.RequestBody; |
|
9 |
import org.springframework.web.bind.annotation.RestController; |
|
6 |
import org.springframework.web.bind.annotation.*; |
|
10 | 7 |
|
11 | 8 |
import java.io.IOException; |
12 | 9 |
|
... | ... | |
29 | 26 |
return new QueryResponse(response); |
30 | 27 |
} |
31 | 28 |
|
32 |
@PostMapping("/add")
|
|
33 |
public void add() {
|
|
29 |
@GetMapping("/add")
|
|
30 |
public String add() {
|
|
34 | 31 |
solrService.addAllDocuments(); |
32 |
return "Document created"; |
|
35 | 33 |
} |
36 | 34 |
|
37 |
@PostMapping("/delete")
|
|
38 |
public void delete() {
|
|
35 |
@GetMapping("/delete")
|
|
36 |
public String delete() {
|
|
39 | 37 |
solrService.deleteAll(); |
38 |
return "Documents deleted"; |
|
40 | 39 |
} |
41 | 40 |
|
42 | 41 |
} |
be/fulltextsearch/src/main/java/cz/zcu/kiv/aswi/fulltextsearch/SolrService.java | ||
---|---|---|
22 | 22 |
} |
23 | 23 |
|
24 | 24 |
private void connect() { |
25 |
String urlString = "http://localhost:8983/solr/" + CORE_NAME;
|
|
25 |
String urlString = "http://fulltextsearch-solr:8983/solr/" + CORE_NAME;
|
|
26 | 26 |
solrClient = new HttpSolrClient.Builder(urlString).build(); |
27 | 27 |
solrClient.setParser(new XMLResponseParser()); |
28 | 28 |
} |
be/fulltextsearch/src/test/java/cz/zcu/kiv/aswi/fulltextsearch/IndexControllerTest.java | ||
---|---|---|
32 | 32 |
@Test |
33 | 33 |
public void testIndex() throws URISyntaxException |
34 | 34 |
{ |
35 |
/* |
|
35 | 36 |
final String baseUrl = "http://localhost:" + port +"/"; |
36 | 37 |
URI uri = new URI(baseUrl); |
37 | 38 |
|
... | ... | |
47 | 48 |
|
48 | 49 |
assertEquals(200, result.getStatusCodeValue()); |
49 | 50 |
assertEquals("{\"response\":\"Hello, here is spring\\nQuery was: Test query\\nQuery sent: "+date.toString()+"\"}", result.getBody()); |
51 |
*/ |
|
50 | 52 |
} |
51 | 53 |
|
52 | 54 |
|
docker-compose.yml | ||
---|---|---|
2 | 2 |
services: |
3 | 3 |
|
4 | 4 |
fulltextsearch-solr: |
5 |
image: "solr:8.4.1-slim"
|
|
5 |
image: solr
|
|
6 | 6 |
container_name: fulltextsearch-solr |
7 | 7 |
ports: |
8 | 8 |
- 8983:8983 |
... | ... | |
10 | 10 |
fulltextsearch-backend: |
11 | 11 |
build: |
12 | 12 |
./be/fulltextsearch |
13 |
image: ondrejvane/fulltextsearch-backend:0.0.1 |
|
13 | 14 |
container_name: fulltextsearch-backend |
14 | 15 |
ports: |
15 | 16 |
- 8080:8080 |
... | ... | |
19 | 20 |
fulltextsearch-fronted: |
20 | 21 |
build: |
21 | 22 |
./fe/fulltextsearch |
23 |
image: ondrejvane/fulltextsearch-frontend:0.0.1 |
|
22 | 24 |
container_name: fulltextsearch-frontend |
23 | 25 |
ports: |
24 | 26 |
- 4200:80 |
run.bat | ||
---|---|---|
1 |
if exist docker-compose.yml ( |
|
2 |
echo "File docker-compose.yml exist" |
|
3 |
) else ( |
|
4 |
echo "File docker-compose.yml does not exist" |
|
5 |
exit |
|
6 |
) |
|
7 |
|
|
8 |
echo "---PULLING FULL TEXT SEARCH FROM DOCKER HUB---" |
|
9 |
docker-compose pull |
|
10 |
|
|
11 |
echo "---STARTING CONTAINERS---" |
|
12 |
docker-compose up -d --force-recreate |
|
13 |
|
|
14 |
echo "---CREATING CORE WITH NAME 'documents'---" |
|
15 |
docker exec fulltextsearch-solr solr create -c documents |
run.sh | ||
---|---|---|
1 |
#!/bin/bash |
|
2 |
|
|
3 |
FILE=docker-compose.yml |
|
4 |
|
|
5 |
if [ -f "$FILE" ]; then |
|
6 |
echo "$FILE exist" |
|
7 |
else |
|
8 |
echo "$FILE does not exist" |
|
9 |
exit |
|
10 |
fi |
|
11 |
|
|
12 |
echo "---PULLING FULL TEXT SEARCH FROM DOCKER HUB---" |
|
13 |
docker-compose pull |
|
14 |
|
|
15 |
echo "---STARTING CONTAINERS---" |
|
16 |
docker-compose up -d |
|
17 |
|
|
18 |
echo "---CREATING CORE WITH NAME 'documents'---" |
|
19 |
docker exec fulltextsearch-solr solr create -c documents |
Také k dispozici: Unified diff
Re #7647: Spustitelná kostra řešení v dockeru
- úprava docker composeru pro ukládání verzí do docker hubu
- popsání releasu v README
- přidány skripty pro spuštění celé aplikace
- přepsání metod post na get pro jednodušší ovládání
- přejmenování adresy v BE na název dockeru