181 lines
6.4 KiB
YAML
181 lines
6.4 KiB
YAML
# ****************************************************************************************************
|
|
# * ______ _ _ *
|
|
# * | ____| /\ (_) | | *
|
|
# * | |__ _ _ _ __ ___ _ __ ___ __ _ _ __ / \ _ _ __ _ __ ___ _ __| |_ ___ *
|
|
# * | __|| | | | '__/ _ \| '_ \ / _ \/ _` | '_ \ / /\ \ | | '__| '_ \ / _ \| '__| __/ __| *
|
|
# * | |___| |_| | | | (_) | |_) | __/ (_| | | | | / ____ \| | | | |_) | (_) | | | |_\__ \ *
|
|
# * |______\__,_|_| \___/| .__/ \___|\__,_|_| |_| /_/ \_\_|_| | .__/ \___/|_| \__|___/ *
|
|
# * | | | | *
|
|
# * |_| |_| *
|
|
# * *
|
|
# ****************************************************************************************************
|
|
|
|
# This file is part of the European Airports Project, a free, collaborative platform of airport data
|
|
# extending beyond the official AIPs.
|
|
|
|
# Copyright (C) 2023
|
|
|
|
# Florian Meissner <florianmeissner@gmx.de>
|
|
|
|
# This program is free software: you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License as published by the Free Software Foundation, either
|
|
# version 3 of the License, or (at your option) any later version. This program is distributed in the
|
|
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
# details. You should have received a copy of the GNU General Public License along with this program.
|
|
# (license.md in the root folder of this project) If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
version: '3.8'
|
|
|
|
services:
|
|
|
|
backend-nginx:
|
|
container_name: european-airports_api-nginx
|
|
build:
|
|
context: ./nginx
|
|
args:
|
|
NGINX_VERSION: ${NGINX_VERSION}
|
|
image: european-airports/api-nginx
|
|
restart: always
|
|
depends_on:
|
|
- backend-php
|
|
env_file:
|
|
- ./nginx/nginx.env
|
|
- ./backend/nginx.env
|
|
volumes:
|
|
- ./backend/src/:/var/www/html
|
|
networks:
|
|
- backend
|
|
- web
|
|
labels:
|
|
- "traefik.http.routers.backend-nginx.rule=Host(`api.${BASE_URL}`)"
|
|
- "traefik.http.routers.backend-nginx.entrypoints=web"
|
|
- "traefik.http.routers.backend-nginx-secure.rule=Host(`api.${BASE_URL}`)"
|
|
- "traefik.http.routers.backend-nginx-secure.tls.certresolver=https-resolver"
|
|
- "traefik.http.routers.backend-nginx-secure.entrypoints=websecure"
|
|
- "traefik.docker.network=european-airports/web"
|
|
|
|
backend-php:
|
|
container_name: european-airports_api-php
|
|
build:
|
|
context: ./php-fpm
|
|
args:
|
|
PHP_VERSION: ${PHP_VERSION}
|
|
image: european-airports/api-php-fpm
|
|
restart: always
|
|
depends_on:
|
|
- database
|
|
env_file:
|
|
- ./php-fpm/php.env
|
|
- ./backend/php.env
|
|
volumes:
|
|
- ./backend/src/:/var/www/html
|
|
networks:
|
|
- backend
|
|
secrets:
|
|
- eaBackendUser
|
|
- eaBackendPw
|
|
- passwordPepper
|
|
labels:
|
|
- "traefik.enable=false"
|
|
|
|
frontend-nginx:
|
|
container_name: european-airports_www-nginx
|
|
build:
|
|
context: ./nginx
|
|
args:
|
|
NGINX_VERSION: ${NGINX_VERSION}
|
|
image: european-airports/www-nginx
|
|
restart: always
|
|
depends_on:
|
|
- frontend-php
|
|
env_file:
|
|
- ./nginx/nginx.env
|
|
- ./frontend/nginx.env
|
|
volumes:
|
|
- ./frontend/src/:/var/www/html
|
|
networks:
|
|
- web
|
|
labels:
|
|
- "traefik.http.routers.frontend-nginx.rule=Host(`www.${BASE_URL}`)"
|
|
- "traefik.http.routers.frontend-nginx.entrypoints=web"
|
|
- "traefik.http.routers.frontend-nginx-secure.rule=Host(`www.${BASE_URL}`)"
|
|
- "traefik.http.routers.frontend-nginx-secure.tls.certresolver=https-resolver"
|
|
- "traefik.http.routers.frontend-nginx-secure.entrypoints=websecure"
|
|
|
|
frontend-php:
|
|
container_name: european-airports_www-php
|
|
build:
|
|
context: ./php-fpm
|
|
args:
|
|
PHP_VERSION: ${PHP_VERSION}
|
|
image: european-airports/www-php-fpm
|
|
restart: always
|
|
env_file:
|
|
- ./php-fpm/php.env
|
|
- ./frontend/php.env
|
|
volumes:
|
|
- ./frontend/src/:/var/www/html
|
|
networks:
|
|
- web
|
|
labels:
|
|
- "traefik.enable=false"
|
|
|
|
database:
|
|
container_name: european-airports_mariadb
|
|
build:
|
|
context: ./mariadb
|
|
args:
|
|
MARIADB_VERSION: ${MARIADB_VERSION}
|
|
image: european-airports/mariadb
|
|
restart: "no" # always
|
|
env_file:
|
|
- ./mariadb/mariadb.env
|
|
- ./database/mariadb.env
|
|
volumes:
|
|
- ./database/data:/var/lib/mysql
|
|
- ./database/init:/docker-entrypoint-initdb.d:ro
|
|
secrets:
|
|
- rootUser
|
|
- rootPw
|
|
- eaBackendUser
|
|
- eaBackendPw
|
|
- eaBackendGrantTable
|
|
- checkmkUser
|
|
- checkmkPw
|
|
- checkmkPrivs
|
|
networks:
|
|
- backend
|
|
labels:
|
|
- "traefik.enable=false"
|
|
|
|
networks:
|
|
backend:
|
|
driver: bridge
|
|
name: "european-airports/backend"
|
|
|
|
web:
|
|
driver: bridge
|
|
name: "european-airports/web"
|
|
|
|
secrets:
|
|
checkmkUser:
|
|
file: ./secrets/checkmk_name.txt
|
|
checkmkPw:
|
|
file: ./secrets/checkmk_pw.txt
|
|
checkmkPrivs:
|
|
file: ./secrets/checkmk_privileges.txt
|
|
eaBackendUser:
|
|
file: ./secrets/eaBackend_name.txt
|
|
eaBackendPw:
|
|
file: ./secrets/eaBackend_pw.txt
|
|
eaBackendGrantTable:
|
|
file: ./secrets/eaBackend_grantTable.txt
|
|
rootUser:
|
|
file: ./secrets/root_name.txt
|
|
rootPw:
|
|
file: ./secrets/root_pw.txt
|
|
passwordPepper:
|
|
file: ./secrets/passwordPepper.txt
|