system-config/playbooks/roles/gitea/templates/docker-compose.yaml.j2
Ian Wienand 694241ad77 docker: install rsyslog to capture container output
This started with me wondering why gerritbot was putting all its
output into /var/log/syslog -- it turns out Xenial docker is
configured to use journalctl (which forwards to syslog) and Bionic
onwards uses json-file.

Both are sub-optimial; but particularly the json-file because we lose
the logs when the container dies.  This proposes moving to a more
standard model of having the containers log to syslog and redirecting
that to files on disk.

Install a rsyslog configuration to capture "docker-*" program names
and put them into logfiles in /var/log/containers.  Also install
rotation for these files.

In an initial group of docker-compose files, setup logging to syslog
which should then be captured into these files.  Add some basic
testing.

If this works OK, I think we can standardise our docker-compose files
like this to caputure the logs the same everywhere.

Change-Id: I940a5b05057e832e2efad79d9a2ed5325020ed0c
2020-10-19 16:06:03 +11:00

60 lines
1.4 KiB
Django/Jinja

# Version 2 is the latest that is supported by docker-compose in
# Ubuntu Xenial.
version: '2'
services:
mariadb:
image: docker.io/library/mariadb:10.4
network_mode: host
restart: always
environment:
MYSQL_ROOT_PASSWORD: "{{ gitea_root_db_password }}"
MYSQL_DATABASE: gitea
MYSQL_USER: "{{ gitea_db_username }}"
MYSQL_PASSWORD: "{{ gitea_db_password }}"
volumes:
- /var/gitea/db:/var/lib/mysql
logging:
driver: syslog
options:
tag: "docker-mariadb"
gitea-web:
depends_on:
- mariadb
image: docker.io/opendevorg/gitea:latest
network_mode: host
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
ulimits:
stack:
soft: 16777216
hard: 9223372036854775807
volumes:
- /var/gitea/data:/data
- /var/gitea/conf:/custom/conf
- /var/gitea/logs:/logs
- /var/gitea/certs:/certs
logging:
driver: syslog
options:
tag: "docker-gitea"
gitea-ssh:
depends_on:
- mariadb
- gitea-web
environment:
- SSH_LISTEN_PORT=222
image: docker.io/opendevorg/gitea-openssh
network_mode: host
restart: always
volumes:
- /var/gitea/data:/data
- /var/gitea/conf:/custom/conf
- /var/gitea/logs:/logs
logging:
driver: syslog
options:
tag: "docker-gitea-ssh"