Initialisation de la BDD semble impossible sous Docker
Bonjour, j'ai tenté de faire une installation minimaliste sous Docker et cela ne semble pas fonctionner au moment où j'initialise la BDD.
Je vous joins mes fichiers et vous les affiche également ici. Ils sont très simples :
version: '3'
services:
erasme_spip:
build:
context: .
dockerfile: Dockerfile_SPIP
restart: always
depends_on:
- "erasme_bdd"
links:
- "erasme_bdd"
networks:
- network_site_erasme
ports:
- 0.0.0.0:1050:80
erasme_bdd:
build:
context: .
dockerfile: Dockerfile_BDD
environment:
MYSQL_ROOT_PASSWORD: spip
MYSQL_USER: spip
MYSQL_PASSWORD: spip
MYSQL_DATABASE: spip
restart: always
networks:
- network_site_erasme
networks:
network_site_erasme: {}
FROM php:8-apache
# GESTION ET INSTALLATION DES DÉPENDANCES
RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y git wget libzip-dev zip && docker-php-ext-install zip
# RÉCUPÉRATION DE COMPOSER --> 2.3.5 du 2022-04-13
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN mv composer.phar /usr/local/bin/composer
# RÉCUPÉRATION DE SPIP-CLI
RUN git clone https://git.spip.net/spip-contrib-outils/spip-cli.git /opt/spip-cli
RUN cd /opt/spip-cli && composer install && cd /opt/spip-cli/bin && ln -s $(pwd)/spip /usr/local/bin/ && ln -s $(pwd)/spipmu /usr/local/bin/ && ln -s $(pwd)/spip_console_autocomplete /etc/bash_completion.d/spip
# CONFIGURATION DE SPIP VIA SPIP-CLI
# -> une connexion sur le conteneur de la bdd et un : "ping erasme_spip" atteint correctement le conteneur erasme_spip
RUN cd /var/www/html
RUN spip dl
RUN spip core:preparer -d 2770 --auto
RUN spip install --db-server mysql --db-host erasme_bdd --db-login spip --db-database spip --db-pass spip
COPY sq-erasme/ /var/www/html/plugins
RUN chown -R www-data:www-data /var/www
EXPOSE 80
FROM mysql:8-debian
EXPOSE 3306
Et c'est tout. Pourtant cela plantera sur cette commande : spip install --db-server mysql --db-host erasme_bdd --db-login spip --db-database spip --db-pass spip
Par chance, j'ai un message d'erreur :
Step 14/17 : RUN spip install --db-server mysql --db-host erasme_bdd --db-login spip --db-database spip --db-pass spip
---> Running in b2f8e52cd0f0
Fatal error: Uncaught TypeError: join(): Argument #2 ($array) must be of type ?array, bool given in /var/www/html/ecrire/inc/install.php:109
Stack trace:
#0 /var/www/html/ecrire/inc/install.php(109): join('', false)
#1 /opt/spip-cli/src/Command/CoreInstaller.php(128): analyse_fichier_connection('config/connect....')
#2 /opt/spip-cli/vendor/symfony/console/Command/Command.php(298): Spip\Cli\Command\CoreInstaller->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /opt/spip-cli/vendor/symfony/console/Application.php(1005): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /opt/spip-cli/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(Spip\Cli\Command\CoreInstaller), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /opt/spip-cli/vendor/symfony/console/Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /opt/spip-cli/bin/spip(17): Symfony\Component\Console\Application->run()
#7 {main}
thrown in /var/www/html/ecrire/inc/install.php on line 109
ERROR: Service 'erasme_spip' failed to build: The command '/bin/sh -c spip install --db-server mysql --db-host erasme_bdd --db-login spip --db-database spip --db-pass spip' returned a non-zero code: 255
- la base de données existe bel et bien et est créée avant le conteneur de SPIP
- je peux ping la bdd depuis le conteneur de SPIP
-
cy_altern
m'avait proposé de regarder les fichiers.php
générés dans le dossierconfig/
. Les voicis (après lespip core:preparer
ET avant la commandespip install
):ecran_securite.php
etremove.txt
Si vous voulez tester, il vous suffit de mettre les trois fichiers joints à cette issue et de taper la commande docker-compose up --build
Est-ce moi qui ai commis une erreur ou y a-t-il bien un bug ?
Bien cordialement,