94 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # R11-MockedServices
 | |
| Mockup service for middleware testing.
 | |
| 
 | |
| [comment]: <> ([](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 Docker-compose ensuring that all containers are within a network or start application locally.
 | |
| In order to change environment two properties must be changed.
 | |
| 
 | |
| 1) data-access.properties - property redis.host
 | |
| 2) logback.xml - configuration/appender/host element value
 | |
| 
 | |
| If application is to be run locally, both of above should be set to "localhost"
 | |
| If application is to be run in docker environment, both should be set to name of a redis container (by default "redis")
 | |
| 
 | |
| Docker automaticly translates container name to IP address, considering all containers are within same network.
 | |
| Try to avoid using any symbols in names of containers, because it may cause that URL exception to be thrown. Instead use letters only.
 | |
| 
 | |
| ### 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) run the command 
 | |
| #### docker context create
 | |
| as shown by examples below.
 | |
| 
 | |
| ```
 | |
| 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"
 | |
| ```
 | |
| 
 | |
| However it is highly adviseable to deploy service via Jenkins tool at jenkins.zipper.release11.com, where contexts have been already configured.
 | |
|   
 | |
| #### docker-compose up -d --build
 | |
| Builds and launches Redis service and the application. Performs unit testing on the code and run the applicationon on localhost.
 | |
| 
 | |
| #### 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.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| 
 |