Bonjour ![]()
Je tente toujours de configurer notre pipeline pour qu’il fonctionne avec Discourse.
J’ai un conteneur Redis vierge et un conteneur Postgres vierge à utiliser avec Discourse.
La prochaine étape pour moi est de construire l’image du conteneur web_only afin de les connecter ensuite et de lancer l’installation, si je ne me trompe pas, mais je n’arrive pas à amorcer le conteneur.
Je reçois cette erreur :
ÉCHEC
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' a échoué avec le code de retour #<Process::Status: pid 4632 exit 1>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
Exécution échouée avec les paramètres {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
0e576a9672a887d23579100756224f920ab595b819874b5e7cbe4868f4234481
** ÉCHEC DE L'AMORÇAGE ** veuillez faire défiler vers le haut et chercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
Je suis confus quant à la raison pour laquelle il tente de migrer alors que rien n’est encore construit. Est-ce que je fais les étapes incorrectement ?
Voici le fichier web_only.yml que j’utilise (très basique) :
templates:
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 2
DISCOURSE_DB_USERNAME: root
DISCOURSE_DB_PASSWORD: my-secret-pw
DISCOURSE_DB_HOST: 127.0.0.1
DISCOURSE_DB_NAME: communities
DISCOURSE_DEVELOPER_EMAILS: 'email@mail.com'
DISCOURSE_HOSTNAME: 'localhost'
DISCOURSE_REDIS_HOST: 127.0.0.1
SKIP_POST_DEPLOYMENT_MIGRATIONS: 1
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- mkdir -p plugins
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-voting.git
- git clone https://github.com/discourse/discourse-slack-official.git
- git clone https://github.com/discourse/discourse-assign.git
run:
- exec:
cd: /var/www/discourse
cmd:
- sed -i 's/GlobalSetting.serve_static_assets/true/' config/environments/production.rb
- bash -c "touch -a /shared/log/rails/{sidekiq,puma.err,puma}.log"
- bash -c "ln -s /shared/log/rails/{sidekiq,puma.err,puma}.log log/"
- sed -i 's/default \$scheme;/default https;/' /etc/nginx/conf.d/discourse.conf
Dois-je avoir un conteneur Postgres et un conteneur Redis en cours d’exécution à chaque fois que je dois amorcer une construction ? Je pensais pouvoir préparer les images pour les télécharger moi-même, puis relancer mes environnements avec elles sans avoir besoin de faire quoi que ce soit sur ma base de données…
Le pipeline que l’on m’a demandé de construire est le suivant :
- GitHub Actions : qui peut amorcer l’image au cas où une mise à jour serait nécessaire.
- Pousser l’image vers un registre privé.
- Ensuite, mon cluster Kubernetes pourrait récupérer les mises à jour et les déployer dans mes environnements, du dev à la prod.
Merci encore pour toute l’aide et le soutien. ![]()