J’ai quelques autres conteneurs Docker et j’exécute des étapes comme suit :
# Copie le contenu du répertoire actuel dans le conteneur à l'adresse /app
COPY html /usr/share/nginx/html/
COPY dim.local.crt /etc/nginx/ssl/
COPY dim.local.key /etc/nginx/ssl/
COPY nginx.conf /etc/nginx/
COPY default.conf /etc/nginx/sites-enabled/
# Installe les packages nécessaires spécifiés dans requirements.txt
#RUN pip install -r requirements.txt
# Faut-il redémarrer nginx après les commandes COPY ?
RUN
RUN apt-get update \
&& apt-get install -y nano \
&& rm -fr /var/lib/apt/lists/*
Je dois effectuer des étapes similaires pour mon conteneur Discourse, mais où se trouve le Dockerfile ? J’ai lu qu’on pourrait peut-être les ajouter à la fin de containers/app.yml, mais je ne suis pas confiant.
Je ne veux pas faire exactement la même chose. J’ai simplement des scripts shell et une crontab que je souhaite copier dans le conteneur afin d’automatiser certaines tâches.
Oui, je vois cela, mais à chaque fois que je reconstruis, j’obtiens des erreurs de copie :
## Toutes commandes personnalisées à exécuter après la construction
run:
- exec: echo "Début des commandes personnalisées"
## Si vous souhaitez définir l'adresse e-mail 'De' pour votre première inscription, décommentez et modifiez :
## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit être exécutée qu'une seule fois.
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: cp /shared/rr/run_badges.sh /etc/cron.d/.
- exec: cp /shared/rr/badges /etc/cron.d/.
- exec: echo "Fin des commandes personnalisées"
Je pourrais effectivement les extraire depuis une URL, c’est une idée.
Les fichiers sont bien présents sur l’hôte :
# ls -al shared/rr/
badges run_badges.sh
#
Voici l’erreur :
ÉCHEC
--------------------
Erreur d'exécution Pups : cp /shared/rr/run_badges.sh /etc/cron.d/. a échoué avec le code de retour #<Process::Status: pid 1457 exit 1>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
L'exécution a échoué avec les paramètres "cp /shared/rr/run_badges.sh /etc/cron.d/."
e23ff12630c8058c4b36ee8673404dafbe6791ec61aa630f1224400eba4e75e0
** ÉCHEC DE L'INITIALISATION ** Veuillez faire défiler vers le haut et rechercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
Le répertoire /shared à l’intérieur du conteneur est mappé, par défaut, vers /var/discourse/shared/standalone, il vous manque donc un répertoire à cet endroit.