80 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# R11-Klaus
 | 
						|
Mockup service for middleware testing.
 | 
						|
 | 
						|
[](https://travis-ci.com/Szakalakamaka/Klaus)
 | 
						|
 | 
						|
Available scripts:
 | 
						|
 | 
						|
### Running the application on a local machine
 | 
						|
For Intellij:
 | 
						|
Plugins:
 | 
						|
settings -> plugins -> install lombok plugin
 | 
						|
settings -> annotation processors -> enable annotation processing
 | 
						|
 | 
						|
A connection to a Redis database is expected to run the application successfully. You need to download and run Redis DB on
 | 
						|
your local machine with default values localhost 6379.
 | 
						|
 | 
						|
You can also run the application via Docker.
 | 
						|
#### docker-compose up --build -d
 | 
						|
 | 
						|
However, you need either to run it with Spring Cloud Config application or override property value 
 | 
						|
from redis.host = localhost to redis.host = redis. Where value "redis" will be treated as a DB service address and used
 | 
						|
for connection between docker images.
 | 
						|
 | 
						|
### Operations on Redis DB
 | 
						|
 | 
						|
Use Redis CLI or attach to Redis docker image in order to manually operate on DB.
 | 
						|
 | 
						|
#### docker exec -it mockedservices_redis-server redis-cli
 | 
						|
Attach to redis server image and open a redis client. 
 | 
						|
 | 
						|
Useful redis-cli commands:
 | 
						|
###### KEYS *
 | 
						|
Show all keys in the db.
 | 
						|
###### TYPE key
 | 
						|
Show key type.
 | 
						|
###### LRANGE key start stop
 | 
						|
Display elements from the list.
 | 
						|
###### LLEN key
 | 
						|
Display list length.
 | 
						|
###### SMEMBERS key
 | 
						|
Display elements from hashSet.
 | 
						|
Logs can be found in lists with names logstash_yyyy-mm-dd.
 | 
						|
 | 
						|
### Deployment and building with docker and jenkins
 | 
						|
For creating docker context (feature available from docker version 19.03):
 | 
						|
 | 
						|
docker context create DEV \
 | 
						|
  --description "context for DEV environment" \
 | 
						|
  --docker "host=ssh://jenkins@s5000xvn:22"
 | 
						|
 | 
						|
  
 | 
						|
docker context create PROD \
 | 
						|
  --description "connection to PROD environment" \
 | 
						|
  --docker "host=ssh://jenkins@server361209.nazwa.pl:22"
 | 
						|
  
 | 
						|
docker context create PROD \
 | 
						|
  --description "context for PROD environment" \
 | 
						|
  --docker "host=ssh://jenkins@server361209:22"
 | 
						|
  
 | 
						|
#### docker-compose up -d --build
 | 
						|
Builds and launches Redis service and the application. Performs unit testing on the code and run the application.
 | 
						|
 | 
						|
#### docker-compose --context DEV up --build -d
 | 
						|
The same as above, but the application will be deployed on the server defined via docker context as DEV.
 | 
						|
 | 
						|
#### docker-compose --context PROD up --build -d
 | 
						|
The same as above, but the application will be deployed on the server defined via docker context as PROD.
 | 
						|
 | 
						|
The application can be started on a local machine without environment support. However, for application supervising and 
 | 
						|
updating configuration on deployment spring cloud applications should be deployed before. In order:
 | 
						|
- Spring Cloud Eureka
 | 
						|
- Spring Cloud Configuration
 | 
						|
- MockedServices
 | 
						|
Once a docker image repository will be availabe, the proper deployment order should be under control by docker-compose script
 | 
						|
which should check if the applications are present and if not deploy stable images of Spring Cloud applications from
 | 
						|
docker image repo.
 | 
						|
 | 
						|
 | 
						|
 |