From 16ee9579cf61991571e339e6bed14c2a72c45831 Mon Sep 17 00:00:00 2001 From: Draconis Date: Sun, 15 Dec 2024 11:30:38 +0100 Subject: [PATCH] health docker --- .DS_Store | Bin 0 -> 6148 bytes Dockerfile | 33 +++++++++----- errors/403.html | 20 +++++++++ errors/404.html | 20 +++++++++ errors/500.html | 20 +++++++++ errors/css/style.css | 102 +++++++++++++++++++++++++++++++++++++++++++ errors/img/emoji.png | Bin 0 -> 7358 bytes health.php | 3 ++ 8 files changed, 187 insertions(+), 11 deletions(-) create mode 100644 .DS_Store create mode 100644 errors/403.html create mode 100644 errors/404.html create mode 100644 errors/500.html create mode 100644 errors/css/style.css create mode 100644 errors/img/emoji.png create mode 100644 health.php diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..481c4694bc58a634443079999f36806dd8a0581b GIT binary patch literal 6148 zcmeHKL5tHs6n@jj-ECLWz;8X6OoI?=+ZX6gAZ~QEGCO(F`VSDdG-FP7uj3saZaUt&-+R*Uc!Q(CX47)-J$Ur= zYT_ThZy>5FBsjzMx7ftn z%4u4Q`d*8|)Y_ISV19G%{+8Ei%d-kt1^!+E-XA9;~r@z1dS4nne6|f3yl>)*U1*0KKGH2_J;`prf(B7f3aa^fUQP7#=SPl3n dK0s53HID~C-(aZ`9+>?jpk%O}Rp6g0@Dsb_nj!!I literal 0 HcmV?d00001 diff --git a/Dockerfile b/Dockerfile index af802de..674c16c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,30 @@ -# Dockerfile FROM php:8.3-apache -# Apache config -COPY conf/vhost.conf /etc/apache2/sites-available/000-default.conf -COPY conf/apache.conf /etc/apache2/conf-available/z-ambient.conf -COPY errors /errors -RUN a2enconf z-ambient +EXPOSE 80 +WORKDIR /app -# Php config +HEALTHCHECK --interval=1m --timeout=3s --start-period=5s --start-interval=1s --retries=3 \ + CMD curl -f http://localhost/_health || exit 1 + +# git, unzip & zip are for composer RUN apt-get update -qq && \ apt-get install -qy \ git \ gnupg \ unzip \ - zip \ - nano -RUN docker-php-ext-install -j$(nproc) opcache mbstring -COPY conf/php.ini /usr/local/etc/php/conf.d/app.ini + zip && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /var/log/* + +# PHP Extensions +RUN docker-php-ext-install -j$(nproc) opcache mbstring +COPY --link conf/php.ini /usr/local/etc/php/conf.d/app.ini + +# Apache +COPY --link errors /errors +COPY --link health.php /health/index.php +COPY --link conf/vhost.conf /etc/apache2/sites-available/000-default.conf +COPY --link conf/apache.conf /etc/apache2/conf-available/z-ambient.conf +COPY --link /src /app + +RUN a2enmod rewrite remoteip && \ + a2enconf z-ambient diff --git a/errors/403.html b/errors/403.html new file mode 100644 index 0000000..97890d1 --- /dev/null +++ b/errors/403.html @@ -0,0 +1,20 @@ + + + + + + + Erreur 403 (Interdit) + + + + +
+
+

403

+

Accès interdit.

+

L'accès à cette page requiert une autorisation.

+ Retour à la page d'accueil +
+ + diff --git a/errors/404.html b/errors/404.html new file mode 100644 index 0000000..f0b6399 --- /dev/null +++ b/errors/404.html @@ -0,0 +1,20 @@ + + + + + + + Erreur 404 (Introuvable) + + + + +
+
+

404

+

Oops! Vous êtes perdu.

+

La page que vous demandez est introuvable. Elle a peut-être été supprimée ou déplacée.

+ Retour à la page d'accueil +
+ + diff --git a/errors/500.html b/errors/500.html new file mode 100644 index 0000000..b34c2d7 --- /dev/null +++ b/errors/500.html @@ -0,0 +1,20 @@ + + + + + + + Erreur 500 (Inaccessible) + + + + +
+
+

500

+

Huston, on a un problème !

+

La page que vous demandez est temporairement inaccessible.

+ Retour à la page d'accueil +
+ + diff --git a/errors/css/style.css b/errors/css/style.css new file mode 100644 index 0000000..6be89a5 --- /dev/null +++ b/errors/css/style.css @@ -0,0 +1,102 @@ +html { + box-sizing: border-box; + font-size: 16px; +} + +*, *:before, *:after { + box-sizing: inherit; +} + +body, h1, h2, h3, h4, h5, h6, p, ol, ul { + margin: 0; + padding: 0; + font-weight: normal; +} + +ol, ul { + list-style: none; +} + +html, body { + height: 100%; +} + +body { + font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +#error-box { + position: relative; + max-width: 560px; + width: 100%; + padding-left: 160px; + line-height: 1.1; +} + +#error-box #error-image { + position: absolute; + left: 0; + top: 0; + display: inline-block; + width: 140px; + height: 140px; + background-image: url('/_errors/img/emoji.png'); + background-size: cover; +} + +#error-box #error-image:before { + content: ''; + position: absolute; + width: 100%; + height: 100%; + transform: scale(2.4); + border-radius: 50%; + background-color: #f2f5f8; + z-index: -1; +} + +#error-box h1 { + font-size: 65px; + font-weight: 700; + margin-top: 0; + margin-bottom: 10px; + color: #151723; + text-transform: uppercase; +} + +#error-box h2 { + font-size: 21px; + font-weight: 400; + margin: 0 0 1rem 0; + text-transform: uppercase; + color: #151723; +} + +#error-box p { + color: #999fa5; + font-weight: 400; + margin-bottom: 1rem; +} + +#error-box a { + font-weight: 500; + text-decoration: none; + color: #388dbc; +} + +@media only screen and (max-width: 767px) { + #error-box #error-image { + width: 110px; + height: 110px; + } + + #error-box { + padding-left: 15px; + padding-right: 15px; + padding-top: 110px; + } +} diff --git a/errors/img/emoji.png b/errors/img/emoji.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd4942deaebf02d1f0e3f274de20eb92d3fae48 GIT binary patch literal 7358 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 YSdIyacCaqqe@+ykT85g9>W+{82M^eXeE