use service profiles

This commit is contained in:
Yax 2022-03-05 14:59:24 +01:00
parent 1a3a900efa
commit dec11477a3
9 changed files with 16 additions and 79 deletions

View file

@ -12,6 +12,11 @@ docker-compose ()
}
```
Compose files refer to [service profiles](https://docs.docker.com/compose/profiles/):
- disabled: set for services I don't use
- testing: enable SSL configuration relying on https://traefik.me for local testing
- production: enable domain configuration on deployment server
### Network diagram:
![network diag](__doc__/nwdiag.png)

View file

@ -3,6 +3,7 @@ services:
netdata:
image: netdata/netdata
container_name: netdata
profiles: ["disabled"]
hostname: ${HOST_NETDATA}.${DOMAIN}
expose:
- 19999
@ -38,6 +39,7 @@ services:
docker-proxy:
image: tecnativa/docker-socket-proxy
container_name: docker-proxy
profiles: ["disabled"]
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:

View file

@ -3,7 +3,8 @@ version: '3'
services:
postgres:
container_name: photonix-postgres
image: postgres:11.1-alpine
image: postgres:11.1-alpine
profiles: ["disabled"]
environment:
POSTGRES_DB: photonix
POSTGRES_PASSWORD: password
@ -21,6 +22,7 @@ services:
photonix:
container_name: photonix
image: photonixapp/photonix:latest
profiles: ["disabled"]
expose:
- 80
environment:

View file

@ -4,6 +4,7 @@ services:
photoview-db:
container_name: photoview-db
image: mariadb:10.5
profiles: ["disabled"]
restart: unless-stopped
environment:
- MYSQL_DATABASE=photoview
@ -18,6 +19,7 @@ services:
photoview:
container_name: photoview
image: viktorstrate/photoview:2
profiles: ["disabled"]
restart: unless-stopped
expose:
- 80

View file

@ -4,6 +4,7 @@ services:
poste-io:
container_name: poste-io
image: analogic/poste.io
profiles: ["disabled"]
volumes:
- ${ROOT_INSTALL}/data/poste.io:/data
environment:

View file

@ -1,43 +0,0 @@
#!/bin/bash
export DOCKER_COMPOSE_BIN='/usr/local/bin/docker-compose'
docker-compose ()
{
$DOCKER_COMPOSE_BIN $(find -name 'docker-compose*.yml' -type f -perm -u+x -printf '%p\t%d\n' 2>/dev/null | sort -n -k2 | cut -f 1 | awk '{print "-f "$0}') $@
}
# ===========================================================================
# Configure
if [[ $# -eq 0 ]] ; then
echo 'Nothing to do'
exit 0
fi
case "$1" in
"on")
# disable unused services
chmod -x baikal/docker-compose.baikal.yml
chmod -x posteio/docker-compose.posteio.yml
chmod -x netdata/docker-compose.netdata.yml
chmod -x photo/docker-compose.photonix.yml
chmod -x photo/docker-compose.photoview.yml
# local testing
chmod -x traefik/docker-compose.traefik.yml
exit 0;;
"off")
# restore state
chmod +x baikal/docker-compose.baikal.yml
chmod +x posteio/docker-compose.posteio.yml
chmod +x netdata/docker-compose.netdata.yml
chmod +x photo/docker-compose.photonix.yml
chmod +x photo/docker-compose.photoview.yml
chmod +x traefik/docker-compose.traefik.yml
exit 0;;
*)
echo "Unknown command: on/off are valid values"
exit 1;;
esac

View file

@ -1,34 +0,0 @@
#!/bin/bash
if [[ $# -eq 0 ]] ; then
echo 'Nothing to do'
exit 0
fi
case "$1" in
"on")
# disable unused services
chmod -x baikal/docker-compose.baikal.yml
chmod -x posteio/docker-compose.posteio.yml
chmod -x netdata/docker-compose.netdata.yml
chmod -x photo/docker-compose.photonix.yml
chmod -x photo/docker-compose.photoview.yml
# live server
chmod -x traefik/docker-compose.traefik-local.yml
exit 0;;
"off")
# restore state
chmod +x baikal/docker-compose.baikal.yml
chmod +x posteio/docker-compose.posteio.yml
chmod +x netdata/docker-compose.netdata.yml
chmod +x photo/docker-compose.photonix.yml
chmod +x photo/docker-compose.photoview.yml
chmod +x traefik/docker-compose.traefik-local.yml
exit 0;;
*)
echo "Unknown command: on/off are valid values"
exit 1;;
esac

View file

@ -3,7 +3,8 @@ version: '3'
services:
traefik:
container_name: traefik-local
image: traefik:v2.5.3
image: traefik:v2.5.3
profiles: ["testing"]
ports:
- 80:80
- 443:443

View file

@ -4,6 +4,7 @@ services:
traefik:
container_name: traefik
image: traefik:v2.5.3
profiles: ["production"]
command:
- --providers.docker=true
- --providers.docker.exposedbydefault=false