master/docker-compose.yml

165 lines
5.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
ports:
- 8080:80
depends_on:
- backend-php
env_file:
- ./nginx/nginx.env
- ./backend/nginx.env
volumes:
- ./backend/src/:/var/www/html
networks:
- backend
- 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
frontend-nginx:
container_name: european-airports_www-nginx
build:
context: ./nginx
args:
NGINX_VERSION: ${NGINX_VERSION}
image: european-airports/www-nginx
restart: always
ports:
- 8081:80
depends_on:
- frontend-php
env_file:
- ./nginx/nginx.env
- ./frontend/nginx.env
volumes:
- ./frontend/src/:/var/www/html
networks:
- web
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
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