mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
This was completely bugged out. This commit fixes git, provides two separate cgit servers for the different URL bases and also supplies a smartgit service for $AURWEB_URL/repo.git interaction. Docker image needs to be rebuilt with this change: $ docker build -t aurweb:latest . Signed-off-by: Kevin Morris <kevr@0cost.org>
352 lines
9.1 KiB
YAML
352 lines
9.1 KiB
YAML
#
|
|
# Docker service definitions for the aurweb project.
|
|
#
|
|
# Notable services:
|
|
# - `sharness` - Run sharness test suites
|
|
# - `pytest-mysql` - Run pytest suites with MariaDB
|
|
# - `pytest-sqlite` - Run pytest suites with SQLite
|
|
# - `test` - Run sharness, pytest-mysql and pytest-sqlite
|
|
# - `mariadb` - `port 13306` - MariaDB server for docker
|
|
# - `ca` - Certificate Authority generation
|
|
# - `git` - `port 2222` - Git over SSH server
|
|
# - `fastapi` - hypercorn service for aurweb's FastAPI app
|
|
# - `php-fpm` - Execution server for PHP aurweb
|
|
# - `nginx` - `ports 8444 (FastAPI), 8443 (PHP)` - Everything
|
|
# - You can reach `nginx` via FastAPI at `https://localhost:8444/`
|
|
# or via PHP at `https://localhost:8443/`. CGit can be reached
|
|
# via the `/cgit/` request uri on either server.
|
|
#
|
|
# Copyright (C) 2021 aurweb Development
|
|
# All Rights Reserved.
|
|
version: "3.8"
|
|
|
|
services:
|
|
ca:
|
|
image: aurweb:latest
|
|
init: true
|
|
entrypoint: /docker/ca-entrypoint.sh
|
|
command: exit 0
|
|
volumes:
|
|
- ./cache:/cache
|
|
|
|
mariadb:
|
|
image: aurweb:latest
|
|
init: true
|
|
entrypoint: /docker/mariadb-entrypoint.sh
|
|
command: /docker/scripts/run-mariadb.sh mysqld_safe --datadir=/var/lib/mysql
|
|
ports:
|
|
# This will expose mariadbd on 127.0.0.1:13306 in the host.
|
|
# Ex: `mysql -uaur -paur -h 127.0.0.1 -P 13306 aurweb`
|
|
- "13306:3306"
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld # Bind socket in this volume.
|
|
- mariadb_data:/var/lib/mysql
|
|
healthcheck:
|
|
test: "bash /docker/health/mariadb.sh"
|
|
interval: 2s
|
|
timeout: 60s
|
|
|
|
git:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=/aurweb/conf/config
|
|
entrypoint: /docker/git-entrypoint.sh
|
|
command: /docker/scripts/run-sshd.sh
|
|
ports:
|
|
- "2222:2222"
|
|
healthcheck:
|
|
test: "bash /docker/health/sshd.sh"
|
|
interval: 2s
|
|
timeout: 30s
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
links:
|
|
- mariadb
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld
|
|
- mariadb_data:/var/lib/mysql
|
|
- git_data:/aurweb/aur.git
|
|
- ./cache:/cache
|
|
|
|
smartgit:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=/aurweb/conf/config
|
|
entrypoint: /docker/smartgit-entrypoint.sh
|
|
command: /docker/scripts/run-smartgit.sh
|
|
healthcheck:
|
|
test: "bash /docker/health/smartgit.sh"
|
|
interval: 2s
|
|
timeout: 30s
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
links:
|
|
- mariadb
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld
|
|
- mariadb_data:/var/lib/mysql
|
|
- git_data:/aurweb/aur.git
|
|
- ./cache:/cache
|
|
- smartgit_run:/var/run/smartgit
|
|
|
|
cgit-php:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=/aurweb/conf/config
|
|
entrypoint: /docker/cgit-entrypoint.sh
|
|
command: /docker/scripts/run-cgit.sh 3000 "https://localhost:8443/cgit"
|
|
healthcheck:
|
|
test: "bash /docker/health/cgit.sh 3000"
|
|
interval: 2s
|
|
timeout: 30s
|
|
depends_on:
|
|
git:
|
|
condition: service_healthy
|
|
links:
|
|
- git
|
|
volumes:
|
|
- git_data:/aurweb/aur.git
|
|
|
|
cgit-fastapi:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=/aurweb/conf/config
|
|
entrypoint: /docker/cgit-entrypoint.sh
|
|
command: /docker/scripts/run-cgit.sh 3000 "https://localhost:8444/cgit"
|
|
healthcheck:
|
|
test: "bash /docker/health/cgit.sh 3000"
|
|
interval: 2s
|
|
timeout: 30s
|
|
depends_on:
|
|
git:
|
|
condition: service_healthy
|
|
links:
|
|
- git
|
|
volumes:
|
|
- git_data:/aurweb/aur.git
|
|
|
|
php-fpm:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=/aurweb/conf/config
|
|
entrypoint: /docker/php-entrypoint.sh
|
|
command: /docker/scripts/run-php.sh
|
|
healthcheck:
|
|
test: "bash /docker/health/php.sh"
|
|
interval: 2s
|
|
timeout: 30s
|
|
depends_on:
|
|
ca:
|
|
condition: service_started
|
|
git:
|
|
condition: service_healthy
|
|
mariadb:
|
|
condition: service_healthy
|
|
links:
|
|
- ca
|
|
- git
|
|
- mariadb
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld # Bind socket in this volume.
|
|
- mariadb_data:/var/lib/mysql
|
|
- ./cache:/cache
|
|
- ./aurweb:/aurweb/aurweb
|
|
- ./migrations:/aurweb/migrations
|
|
- ./test:/aurweb/test
|
|
- ./web/html:/aurweb/web/html
|
|
- ./web/template:/aurweb/web/template
|
|
- ./web/lib:/aurweb/web/lib
|
|
- ./templates:/aurweb/templates
|
|
|
|
fastapi:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=conf/config
|
|
entrypoint: /docker/fastapi-entrypoint.sh
|
|
command: /docker/scripts/run-fastapi.sh "${FASTAPI_BACKEND}"
|
|
healthcheck:
|
|
test: "bash /docker/health/fastapi.sh ${FASTAPI_BACKEND}"
|
|
interval: 2s
|
|
timeout: 30s
|
|
depends_on:
|
|
ca:
|
|
condition: service_started
|
|
git:
|
|
condition: service_healthy
|
|
mariadb:
|
|
condition: service_healthy
|
|
links:
|
|
- ca
|
|
- git
|
|
- mariadb
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld # Bind socket in this volume.
|
|
- mariadb_data:/var/lib/mysql
|
|
- ./cache:/cache
|
|
- ./aurweb:/aurweb/aurweb
|
|
- ./migrations:/aurweb/migrations
|
|
- ./test:/aurweb/test
|
|
- ./web/html:/aurweb/web/html
|
|
- ./web/template:/aurweb/web/template
|
|
- ./web/lib:/aurweb/web/lib
|
|
- ./templates:/aurweb/templates
|
|
|
|
nginx:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=conf/config
|
|
entrypoint: /docker/nginx-entrypoint.sh
|
|
command: /docker/scripts/run-nginx.sh
|
|
ports:
|
|
- "8443:8443" # PHP
|
|
- "8444:8444" # FastAPI
|
|
healthcheck:
|
|
test: "bash /docker/health/nginx.sh"
|
|
interval: 2s
|
|
timeout: 30s
|
|
depends_on:
|
|
cgit-php:
|
|
condition: service_healthy
|
|
cgit-fastapi:
|
|
condition: service_healthy
|
|
smartgit:
|
|
condition: service_healthy
|
|
fastapi:
|
|
condition: service_healthy
|
|
php-fpm:
|
|
condition: service_healthy
|
|
links:
|
|
- cgit-php
|
|
- cgit-fastapi
|
|
- smartgit
|
|
- fastapi
|
|
- php-fpm
|
|
volumes:
|
|
- git_data:/aurweb/aur.git
|
|
- ./cache:/cache
|
|
- ./logs:/var/log/nginx
|
|
- ./web/html:/aurweb/web/html
|
|
- ./web/template:/aurweb/web/template
|
|
- ./web/lib:/aurweb/web/lib
|
|
- smartgit_run:/var/run/smartgit
|
|
|
|
sharness:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=conf/config.sqlite
|
|
entrypoint: /docker/test-sqlite-entrypoint.sh
|
|
command: /docker/scripts/run-sharness.sh
|
|
stdin_open: true
|
|
tty: true
|
|
depends_on:
|
|
git:
|
|
condition: service_healthy
|
|
links:
|
|
- git
|
|
volumes:
|
|
- git_data:/aurweb/aur.git
|
|
- ./cache:/cache
|
|
- ./aurweb:/aurweb/aurweb
|
|
- ./migrations:/aurweb/migrations
|
|
- ./test:/aurweb/test
|
|
- ./web/html:/aurweb/web/html
|
|
- ./web/template:/aurweb/web/template
|
|
- ./web/lib:/aurweb/web/lib
|
|
- ./templates:/aurweb/templates
|
|
|
|
pytest-mysql:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=conf/config
|
|
entrypoint: /docker/test-mysql-entrypoint.sh
|
|
command: /docker/scripts/run-pytests.sh clean
|
|
stdin_open: true
|
|
tty: true
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
git:
|
|
condition: service_healthy
|
|
links:
|
|
- mariadb
|
|
- git
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld
|
|
- git_data:/aurweb/aur.git
|
|
- ./cache:/cache
|
|
- ./aurweb:/aurweb/aurweb
|
|
- ./migrations:/aurweb/migrations
|
|
- ./test:/aurweb/test
|
|
- ./web/html:/aurweb/web/html
|
|
- ./web/template:/aurweb/web/template
|
|
- ./web/lib:/aurweb/web/lib
|
|
- ./templates:/aurweb/templates
|
|
|
|
pytest-sqlite:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=conf/config.sqlite
|
|
entrypoint: /docker/test-sqlite-entrypoint.sh
|
|
command: /docker/scripts/run-pytests.sh clean
|
|
stdin_open: true
|
|
tty: true
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld
|
|
- git_data:/aurweb/aur.git
|
|
- ./cache:/cache
|
|
- ./aurweb:/aurweb/aurweb
|
|
- ./migrations:/aurweb/migrations
|
|
- ./test:/aurweb/test
|
|
- ./web/html:/aurweb/web/html
|
|
- ./web/template:/aurweb/web/template
|
|
- ./web/lib:/aurweb/web/lib
|
|
- ./templates:/aurweb/templates
|
|
depends_on:
|
|
git:
|
|
condition: service_healthy
|
|
links:
|
|
- git
|
|
|
|
test:
|
|
image: aurweb:latest
|
|
init: true
|
|
environment:
|
|
- AUR_CONFIG=conf/config
|
|
entrypoint: /docker/tests-entrypoint.sh
|
|
command: /docker/scripts/run-tests.sh
|
|
stdin_open: true
|
|
tty: true
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
links:
|
|
- mariadb
|
|
volumes:
|
|
- mariadb_run:/var/run/mysqld
|
|
- git_data:/aurweb/aur.git
|
|
- ./cache:/cache
|
|
- ./aurweb:/aurweb/aurweb
|
|
- ./migrations:/aurweb/migrations
|
|
- ./test:/aurweb/test
|
|
- ./web/html:/aurweb/web/html
|
|
- ./web/template:/aurweb/web/template
|
|
- ./web/lib:/aurweb/web/lib
|
|
- ./templates:/aurweb/templates
|
|
|
|
volumes:
|
|
mariadb_run: {} # Share /var/run/mysqld/mysqld.sock
|
|
mariadb_data: {} # Share /var/lib/mysql
|
|
git_data: {} # Share aurweb/aur.git
|
|
smartgit_run: {}
|