diff --git a/corbeille/conteneur/services/apache_service/docker-compose.yml b/corbeille/conteneur/services/apache_service/docker-compose.yml new file mode 100644 index 0000000..881cbe7 --- /dev/null +++ b/corbeille/conteneur/services/apache_service/docker-compose.yml @@ -0,0 +1,176 @@ +services: + apache-config-init: + image: busybox:latest + container_name: apache-config-init + volumes: + - apache-config:/config + command: + - /bin/sh + - -c + - | + cat > /config/httpd.conf <<'EOF' + ServerRoot "/usr/local/apache2" + Listen 80 + + LoadModule mpm_event_module modules/mod_mpm_event.so + LoadModule authn_file_module modules/mod_authn_file.so + LoadModule authn_core_module modules/mod_authn_core.so + LoadModule authz_host_module modules/mod_authz_host.so + LoadModule authz_groupfile_module modules/mod_authz_groupfile.so + LoadModule authz_user_module modules/mod_authz_user.so + LoadModule authz_core_module modules/mod_authz_core.so + LoadModule access_compat_module modules/mod_access_compat.so + LoadModule auth_basic_module modules/mod_auth_basic.so + LoadModule reqtimeout_module modules/mod_reqtimeout.so + LoadModule filter_module modules/mod_filter.so + LoadModule mime_module modules/mod_mime.so + LoadModule log_config_module modules/mod_log_config.so + LoadModule env_module modules/mod_env.so + LoadModule headers_module modules/mod_headers.so + LoadModule setenvif_module modules/mod_setenvif.so + LoadModule version_module modules/mod_version.so + LoadModule unixd_module modules/mod_unixd.so + LoadModule status_module modules/mod_status.so + LoadModule autoindex_module modules/mod_autoindex.so + LoadModule dir_module modules/mod_dir.so + LoadModule alias_module modules/mod_alias.so + + + User daemon + Group daemon + + + ServerAdmin admin@localhost + ServerName localhost + + + AllowOverride none + Require all denied + + + DocumentRoot "/usr/local/apache2/htdocs" + + Options Indexes FollowSymLinks + AllowOverride None + Require all granted + + + + DirectoryIndex index.html + + + + Require all denied + + + ErrorLog /usr/local/apache2/logs/error_log + LogLevel warn + + + LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined + LogFormat "%h %l %u %t \"%r\" %>s %b" common + CustomLog /usr/local/apache2/logs/access_log combined + + + + TypesConfig conf/mime.types + AddType application/x-compress .Z + AddType application/x-gzip .gz .tgz + + + # Configuration du module status pour apache_exporter + + SetHandler server-status + Require all granted + + EOF + echo "Apache config created" + restart: "no" + + apache_service: + image: httpd:2.4 + container_name: conteneur_service + ports: + - "8080:80" + volumes: + - apache-logs:/usr/local/apache2/logs + - apache-config:/usr/local/apache2/conf:ro + networks: + - observability + depends_on: + - apache-config-init + command: > + sh -c "touch /usr/local/apache2/logs/access_log /usr/local/apache2/logs/error_log && + exec httpd-foreground" + + apache_exporter: + image: lusotycoon/apache-exporter:v1.0.10 + container_name: apache_exporter_service + command: + - '--scrape_uri=http://apache_service/server-status?auto' + ports: + - "9117:9117" + depends_on: + - apache_service + networks: + - observability + + promtail-service-config-init: + image: busybox:latest + container_name: promtail-service-config-init + volumes: + - promtail-service-config-vol:/config + command: + - /bin/sh + - -c + - | + cat > /config/config.yaml <<'EOF' + server: + http_listen_port: 9080 + grpc_listen_port: 0 + positions: + filename: /tmp/positions.yaml + clients: + - url: http://192.168.56.61:3100/loki/api/v1/push + scrape_configs: + - job_name: apache_access + static_configs: + - targets: [localhost] + labels: + job: apache_access + host: conteneur_service + __path__: /var/log/apache2/access_log + - job_name: apache_error + static_configs: + - targets: [localhost] + labels: + job: apache_error + host: conteneur_service + __path__: /var/log/apache2/error_log + EOF + echo "Promtail service config created" + restart: "no" + + promtail_service: + image: grafana/promtail:2.9.0 + container_name: promtail_service + volumes: + - apache-logs:/var/log/apache2:ro + - promtail-service-config-vol:/etc/promtail:ro + command: + - '-config.file=/etc/promtail/config.yaml' + depends_on: + - promtail-service-config-init + - apache_service + networks: + - observability + +volumes: + apache-logs: + apache-config: + promtail-service-config-vol: + +networks: + observability: + external: true + name: observability_observability \ No newline at end of file