version: '3.7' services: backup: build: ./src env_file: - restic_compose_backup.env labels: restic-compose-backup.volumes: true restic-compose-backup.volumes.include: 'src' networks: - default - global volumes: # Map in docker socket - /var/run/docker.sock:/tmp/docker.sock:ro # Map local restic repository for dev - ./restic_data:/restic_data # Map restic cache - ./restic_cache:/cache # Map in project source in dev - ./src:/restic-compose-backup web: image: nginx labels: restic-compose-backup.volumes: true restic-compose-backup.volumes.include: "/tests" volumes: - ./src/tests:/srv/tests - ./.vscode:/srv/code environment: - SOME_VALUE=test - ANOTHER_VALUE=1 mysql: image: mysql:5 labels: restic-compose-backup.mysql: true environment: - MYSQL_ROOT_PASSWORD=my-secret-pw - MYSQL_DATABASE=mydb - MYSQL_USER=myuser - MYSQL_PASSWORD=mypassword volumes: - mysqldata:/var/lib/mysql mariadb: image: mariadb:10 labels: restic-compose-backup.mariadb: true restic-compose-backup.tags: db,test environment: - MYSQL_ROOT_PASSWORD=my-secret-pw - MYSQL_DATABASE=mydb - MYSQL_USER=myuser - MYSQL_PASSWORD=mypassword volumes: - mariadbdata:/var/lib/mysql postgres: image: postgres:11 labels: restic-compose-backup.postgres: true environment: - POSTGRES_USER=pguser - POSTGRES_PASSWORD=pgpassword - POSTGRES_DB=test volumes: - pgdata:/var/lib/postgresql/data minecraft: image: itzg/minecraft-server labels: restic-compose-backup.minecraft: true restic-compose-backup.tags: "test,foo,bar" restic-compose-backup.volumes.include: "minecraft" environment: - RCON_PASSWORD=minecraft - EULA=TRUE volumes: - ./minecraft:/data volumes: mysqldata: mariadbdata: pgdata: networks: global: external: true