dbarzin / deming

Management tool for the information security management system / Outil de gestion du système de management de la sécurité de l'information
GNU General Public License v3.0
230 stars 55 forks source link

SQLSTATE[HY000] [2002] Connection refused #137

Open Twisterrr opened 5 days ago

Twisterrr commented 5 days ago

Bonjour,

J'essaie de déployer votre application sur un cluster Kubernetes. Pour cela j'ai fais un Dockerfile et j'ai crée une image à partir de ça. Par la suite j'ai déployer sur kubernetes l'application qui a une DB sur un cluster Mariadb.

Suite à cela j'ai un problème de Laravel avec cette erreur : SQLSTATE[HY000] [2002] Connection refused image

Voici mon entrypoint.sh :

#!/usr/bin/env bash

php artisan migrate:fresh --seed
php artisan storage:link
php artisan db:seed --class=AttributeSeeder
php artisan db:seed --class=DomainSeeder
php artisan db:seed --class=MeasureSeeder
php artisan passport:install
php artisan key:generate
chown www-data:www-data storage/oauth-*.key
chmod 600 storage/oauth-*.key
php artisan serve --host 0.0.0.0 --port 80

Et voici mon Dockerfile :

FROM php:8.2-cli
RUN apt-get update && apt-get upgrade --assume-yes \
    && DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends \
    libfreetype-dev libjpeg62-turbo-dev libpng-dev libonig-dev libcurl4-gnutls-dev \
    libxml++2.6-dev libzip-dev libpq-dev && apt-get clean && rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install gd mbstring curl xml zip opcache pdo_mysql
    # php-mysql \
RUN sed -i 's/;extension=pdo_mysql/extension=pdo_mysql/' /usr/local/etc/php/php.ini-development && \
    sed -i 's/;extension=pdo_mysql/extension=pdo_mysql/' /usr/local/etc/php/php.ini-production

# Install MySQL client
RUN apt-get update && apt-get install -y default-mysql-client
ENV COMPOSER_ALLOW_SUPERUSER=1

EXPOSE 80

RUN mkdir /var/www/html/deming

WORKDIR /var/www/html/deming

COPY . /var/www/html/deming/
RUN chmod +x /var/www/html/deming/docker/*.sh
RUN mkdir -p storage/framework/views storage/framework/cache storage/framework/sessions bootstrap/cache
RUN chmod -R 775 /var/www/html/deming/storage && chown -R www-data:www-data /var/www/html/deming

COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer

RUN cd /var/www/html/deming && composer install
RUN php artisan vendor:publish --all

RUN chmod u+x /var/www/html/deming/entrypoint.sh
ENTRYPOINT "/var/www/html/deming/entrypoint.sh"

Comment je peux régler le problème ?

dbarzin commented 4 days ago

As-tu configuré les paramètres de connexion à la DB dans le fichier .env ? As-tu créé la DB ? As-tu créé un utilisateur pour se connecter à la DB ?

Twisterrr commented 4 days ago

Oui, j'ai finalement réussi à résoudre le problème. Il venait du fait que l'application n'interprète pas correctement les caractères spéciaux du à mon mot de passe de DB dans le .env avec des symboles. Pour cela, j'ai juste mis dans mon deployment Kubernetes, un chemin menant directement vers mon "Hashicorp Vault" me permettant de résoudre ça vu qu'il n'est pas mit directement en dur (car je mets mes variables d'env de MariaDB directement dans mon deployment). Ca m'a pu résoudre mon problème.

dbarzin commented 4 days ago

Pourrais-tu écrire une petite documentation sur ton déploiement Kubernetes ? Cela pourrait certainement intéresser d'autres utilisateurs.

Twisterrr commented 4 days ago

Oui, je peux le faire dès que j'ai du temps libre. Tu l'as veux dans cette issue ?

dbarzin commented 3 days ago

Tu peux faire un "pull request" et devenir contributeur du projet !