Compare commits
	
		
			2 Commits
		
	
	
		
			d7e7e4823c
			...
			290c5c302b
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 290c5c302b | |||
| a62dcd794c | 
							
								
								
									
										32
									
								
								haproxy/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								haproxy/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
# Docker Compose
 | 
			
		||||
 | 
			
		||||
## Environment
 | 
			
		||||
 | 
			
		||||
Prepare an environment file following the example in [env/fqdn_context.env.example](env/fqdn_context.env.example):
 | 
			
		||||
```
 | 
			
		||||
CONTEXT=foodstuffs_hongkong
 | 
			
		||||
DOCKER_SUBNET=172.24.23.0/24
 | 
			
		||||
HAPROXY_VERSION=latest
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Var `${DOCKER_SUBNET}` is optional and defaults to `${DOCKER_SUBNET-172.24.23.0/24}`. Treat `CONTEXT` as a team name, purpose or scope. If the same Docker application can run multiple times and serve different tenants then `CONTEXT` is what distinguishes one instance from the other. Here `foodstuffs_hongkong` indicates for example a Hong Kong-based foodstuffs team of some sort.
 | 
			
		||||
 | 
			
		||||
## Vars
 | 
			
		||||
 | 
			
		||||
Define Docker Compose variables, use the `COMPOSE_ENV_FILE` defined above in [Environment](#environment):
 | 
			
		||||
```
 | 
			
		||||
export COMPOSE_DIR='/opt/containers' # Or wherever this repo is checked out
 | 
			
		||||
export COMPOSE_FILE="${COMPOSE_DIR}"'/docker-compose.yml'
 | 
			
		||||
export COMPOSE_ENV_FILE=<add accordingly>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Run like so:
 | 
			
		||||
```
 | 
			
		||||
docker compose --file "${COMPOSE_FILE}" --env-file "${COMPOSE_ENV_FILE}" up --detach
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Log entries will just be something along the lines of:
 | 
			
		||||
```
 | 
			
		||||
haproxy-CONTEXT  | [NOTICE]   (1) : New worker (8) forked
 | 
			
		||||
haproxy-CONTEXT  | [NOTICE]   (1) : Loading success.
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										14
									
								
								haproxy/build-context/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								haproxy/build-context/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
# For the remainder of this Dockerfile EXAMPLE_ARG_FOR_DOCKERFILE will be
 | 
			
		||||
# available with a value of 'must_be_available_in_dockerfile', check out the env
 | 
			
		||||
# file at 'env/fully.qualified.domain.name.example' for reference.
 | 
			
		||||
# ARG EXAMPLE_ARG_FOR_DOCKERFILE
 | 
			
		||||
 | 
			
		||||
# Another env var, this one's needed in the example build step below:
 | 
			
		||||
# ARG HAPROXY_VERSION
 | 
			
		||||
 | 
			
		||||
# Example
 | 
			
		||||
# FROM "haproxy:${HAPROXY_VERSION}"
 | 
			
		||||
# RUN apt-get update && \
 | 
			
		||||
#     apt-get -y install \
 | 
			
		||||
#     somepackage-6.q16-6-extra && \
 | 
			
		||||
#     rm -rf /var/lib/apt/lists/*
 | 
			
		||||
							
								
								
									
										0
									
								
								haproxy/build-context/docker-data/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								haproxy/build-context/docker-data/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								haproxy/build-context/docker-data/haproxy.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								haproxy/build-context/docker-data/haproxy.cfg
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								haproxy/build-context/extras/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								haproxy/build-context/extras/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										11
									
								
								haproxy/common-settings.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								haproxy/common-settings.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
services:
 | 
			
		||||
    common-settings:
 | 
			
		||||
        environment:
 | 
			
		||||
            TZ: "${TIMEZONE:-Etc/UTC}"
 | 
			
		||||
        logging:
 | 
			
		||||
            driver: "json-file"
 | 
			
		||||
            options:
 | 
			
		||||
                max-size: "10m"
 | 
			
		||||
                max-file: "10"
 | 
			
		||||
                compress: "true"
 | 
			
		||||
        restart: "${RESTARTPOLICY:-unless-stopped}"
 | 
			
		||||
							
								
								
									
										9
									
								
								haproxy/docker-compose.override.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								haproxy/docker-compose.override.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
services:
 | 
			
		||||
    haproxy-build:
 | 
			
		||||
        image: "haproxy:${HAPROXY_VERSION}"
 | 
			
		||||
        profiles: ["build"]
 | 
			
		||||
        build:
 | 
			
		||||
            context: "build-context/haproxy"
 | 
			
		||||
            dockerfile: Dockerfile
 | 
			
		||||
            args:
 | 
			
		||||
                HAPROXY_VERSION: "${HAPROXY_VERSION}"
 | 
			
		||||
							
								
								
									
										25
									
								
								haproxy/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								haproxy/docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
services:
 | 
			
		||||
    haproxy:
 | 
			
		||||
        image: "haproxy:${HAPROXY_VERSION}"
 | 
			
		||||
        container_name: "haproxy-${CONTEXT}"
 | 
			
		||||
        networks:
 | 
			
		||||
            haproxy-default:
 | 
			
		||||
        extends:
 | 
			
		||||
            file: common-settings.yml
 | 
			
		||||
            service: common-settings
 | 
			
		||||
        ports:
 | 
			
		||||
            - 80:80
 | 
			
		||||
            - 443:443
 | 
			
		||||
        volumes:
 | 
			
		||||
            - /opt/docker-data/haproxy-${CONTEXT}/config/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
    haproxy-default:
 | 
			
		||||
        name: haproxy-${CONTEXT}
 | 
			
		||||
        driver: bridge
 | 
			
		||||
        driver_opts:
 | 
			
		||||
            com.docker.network.enable_ipv6: "false"
 | 
			
		||||
        ipam:
 | 
			
		||||
            driver: default
 | 
			
		||||
            config:
 | 
			
		||||
                - subnet: ${DOCKER_SUBNET-172.24.23.0/24}
 | 
			
		||||
							
								
								
									
										6
									
								
								haproxy/env/fqdn_context.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								haproxy/env/fqdn_context.env.example
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
# This file is maintained by remco and populated with data from HashiCorp
 | 
			
		||||
# Vault. Changes not done in Vault will be reverted when file gets rendered.
 | 
			
		||||
 | 
			
		||||
CONTEXT=
 | 
			
		||||
DOCKER_SUBNET=
 | 
			
		||||
HAPROXY_VERSION=
 | 
			
		||||
@@ -27,7 +27,7 @@ export COMPOSE_ENV_FILE=<add accordingly>
 | 
			
		||||
 | 
			
		||||
Run Zabbix like so
 | 
			
		||||
```
 | 
			
		||||
docker compose --file "${COMPOSE_FILE}" --env-file "${COMPOSE_ENV_FILE}" up
 | 
			
		||||
docker compose --file "${COMPOSE_FILE}" --env-file "${COMPOSE_ENV_FILE}" up --detach
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Additional files
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user