67 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# make-deploy
 | 
						|
 | 
						|
A simple Makefile based deployment system.
 | 
						|
 | 
						|
## Installation
 | 
						|
 | 
						|
Clone make-deploy as a submodule into your repository:
 | 
						|
 | 
						|
    $ git submodule add https://git.dnix.de/an/make-deploy
 | 
						|
    
 | 
						|
Create a symlink to the Makefile:
 | 
						|
 | 
						|
	$ ln -s make-deploy/Makefile .
 | 
						|
	
 | 
						|
Create `config.mk` (for common config options) and `secrets.mk` (for sensitive information, should be git-crypted) in your project.
 | 
						|
 | 
						|
Example `config.mk`:
 | 
						|
 | 
						|
    DEPLOY_NAME = my-project
 | 
						|
	DEPLOY_PATH = /srv
 | 
						|
	DEPLOY_TYPE = compose
 | 
						|
	DEPLOY_HOSTS = server01.example.com server02.example.com
 | 
						|
 | 
						|
	DOCKER_IMAGE = dr.example.com/my-project:latest
 | 
						|
	DOCKER_LOGIN = 1
 | 
						|
	DOCKER_REGISTRY = dr.example.com
 | 
						|
 | 
						|
	SSH_USER = ci
 | 
						|
 | 
						|
Example `secrets.mk`:
 | 
						|
 | 
						|
    DOCKER_USER = root
 | 
						|
    DOCKER_PASS = secret1234
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
### Start the deployment process
 | 
						|
 | 
						|
    make deploy
 | 
						|
    
 | 
						|
### Create docker contexts for the target hosts
 | 
						|
 | 
						|
    make create-docker-contexts
 | 
						|
    
 | 
						|
### Update make-deploy submodule in your project
 | 
						|
 | 
						|
    make self-update
 | 
						|
 | 
						|
### Available options for DEPLOY_TYPE
 | 
						|
 | 
						|
copy, compose, swarm, k8s (TBD), helm (TBD), cron (TBD)
 | 
						|
 | 
						|
#### copy
 | 
						|
 | 
						|
Just copy the repo to the remote location(s). Put additional logic into pre- and post-deploy.sh.
 | 
						|
 | 
						|
#### compose
 | 
						|
 | 
						|
Docker Compose deployment.
 | 
						|
 | 
						|
##### swarm
 | 
						|
 | 
						|
Docker Swarm deployment.
 | 
						|
 | 
						|
##### k8s, helm, cron
 | 
						|
 | 
						|
To be implemented.
 |