mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-03 19:58:14 +00:00 
			
		
		
		
	Finished docker refactoring
This commit is contained in:
		
							
								
								
									
										43
									
								
								roles/docker-redis/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								roles/docker-redis/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
# Role: docker-redis
 | 
			
		||||
 | 
			
		||||
## Description
 | 
			
		||||
 | 
			
		||||
This Ansible role provides a Jinja2 snippet to inject a Redis service definition into your Docker Compose setup. It renders a `service.yml.j2` template that defines a `redis` container with sensible defaults.
 | 
			
		||||
 | 
			
		||||
## Overview
 | 
			
		||||
 | 
			
		||||
The role’s `service.yml.j2` template includes:
 | 
			
		||||
 | 
			
		||||
- An Alpine-based Redis image (`redis:alpine`)
 | 
			
		||||
- Container naming based on `application_id` (defaults to `redis`)
 | 
			
		||||
- Restart policy
 | 
			
		||||
 
 | 
			
		||||
- Journald logging driver
 | 
			
		||||
- A named volume (`redis:/data`) for persistence
 | 
			
		||||
- A basic healthcheck using `redis-cli ping`
 | 
			
		||||
- Attachment to the default network
 | 
			
		||||
 | 
			
		||||
Include this snippet in your top-level `docker-compose.yml.j2` where you want Redis to appear.
 | 
			
		||||
 | 
			
		||||
## Features
 | 
			
		||||
 | 
			
		||||
- **Configurable `application_id`**  
 | 
			
		||||
  Sets container name (`{{ application_id }}-redis`).
 | 
			
		||||
 | 
			
		||||
- **Restart policy**  
 | 
			
		||||
  Controlled by `docker_restart_policy`.
 | 
			
		||||
 | 
			
		||||
- **Journald logging**  
 | 
			
		||||
  Ensures logs are captured by systemd’s journal.
 | 
			
		||||
 | 
			
		||||
- **Persistent storage**  
 | 
			
		||||
  Declares and mounts `redis:/data`.
 | 
			
		||||
 | 
			
		||||
- **Built-in healthcheck**  
 | 
			
		||||
  Uses `redis-cli ping` with configurable intervals and retries.
 | 
			
		||||
 | 
			
		||||
## Further Resources
 | 
			
		||||
 | 
			
		||||
- [Official Redis Docker image on Docker Hub](https://hub.docker.com/_/redis)  
 | 
			
		||||
- [Ansible Jinja2 documentation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html)  
 | 
			
		||||
- [Docker Compose reference](https://docs.docker.com/compose/compose-file/)  
 | 
			
		||||
							
								
								
									
										17
									
								
								roles/docker-redis/templates/service.yml.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								roles/docker-redis/templates/service.yml.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
# This template needs to be included in docker-compose.yml, which depend on redis
 | 
			
		||||
  redis:
 | 
			
		||||
    image: redis:alpine
 | 
			
		||||
    container_name: {{application_id}}-redis
 | 
			
		||||
    restart: {{docker_restart_policy}}
 | 
			
		||||
    logging:
 | 
			
		||||
      driver: journald
 | 
			
		||||
    volumes:
 | 
			
		||||
      - redis:/data
 | 
			
		||||
    healthcheck:
 | 
			
		||||
      test: ["CMD", "redis-cli", "ping"]
 | 
			
		||||
      interval: 1s
 | 
			
		||||
      timeout: 3s
 | 
			
		||||
      retries: 30
 | 
			
		||||
    networks:
 | 
			
		||||
      - default
 | 
			
		||||
{{ "\n" }}
 | 
			
		||||
							
								
								
									
										1
									
								
								roles/docker-redis/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/docker-redis/vars/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
application_id: redis
 | 
			
		||||
		Reference in New Issue
	
	Block a user