J’ai une action github qui crée des images et elle échoue lorsqu’elle essaie de faire un apt-get update. Je cherche encore à comprendre ce qui se passe, mais lors d’une installation que j’ai faite il y a 2 heures, j’obtiens cette erreur si je fais un apt-get update à l’intérieur du conteneur.
root@monstera-web-only:/# apt-get update
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:4 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:5 http://deb.debian.org/debian bullseye-backports InRelease [49.0 kB]
Get:6 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease [91.7 kB]
Get:7 http://deb.debian.org/debian bullseye/main amd64 Packages [8,183 kB]
Err:2 https://dl.yarnpkg.com/debian stable InRelease
Les signatures suivantes étaient invalides : EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
Get:8 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [216 kB]
Get:9 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [14.6 kB]
Get:10 http://deb.debian.org/debian bullseye-backports/main amd64 Packages [384 kB]
Get:11 https://deb.nodesource.com/node_18.x bullseye InRelease [4,586 B]
Get:12 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [268 kB]
Get:13 https://deb.nodesource.com/node_18.x bullseye/main amd64 Packages [774 B]
Reading package lists... Done
W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: Les signatures suivantes étaient invalides : EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
E: Le dépôt « https://dl.yarnpkg.com/debian stable InRelease » n'est pas signé.
N: La mise à jour depuis un tel dépôt ne peut pas être effectuée de manière sécurisée, et est par conséquent désactivée par défaut.
N: Voir la page man apt-secure(8) pour les détails sur la création de dépôts et la configuration utilisateur.
Je ne vois aucune erreur dans notre CI de construction d’images quotidienne. Pouvez-vous partager la sortie de cat /VERSION depuis l’intérieur du conteneur ?
Je regarde toujours mon CI pour voir si j’ai quelque chose de stupide là-bas (ce qui est tout à fait possible). Je ne comprends pas ce qui fait un apt-get update.
EDIT : Mon CI a un modèle qui installe vim. Il fait un apt-get update. Rien dans une installation normale ne fait un apt-get update que je puisse voir, donc cela explique pourquoi votre CI ne échoue pas.
Beaucoup des modèles d’importation et des modèles de mise à niveau postgres (listés ci-dessous) font un apt-get update, donc ce sera un problème à un moment donné.
Ouais, ce serait ma prochaine question car exécuter une mise à jour comme celle-ci n’est pas par défaut et introduira une variance difficile à suivre, car la plupart des sites utilisent un système d’exploitation statique et s’appuient sur une nouvelle image pour mettre à jour les éléments au niveau du système d’exploitation.
Si le dépôt apt de yarn casse, je suppose qu’il cassera aussi notre CI.
Je peux vérifier cela la semaine prochaine. Peut-être que nous devons publier une nouvelle image de base pour cela.
Je rencontre des erreurs similaires lors d’une mise à jour.
Err:7 https://dl.yarnpkg.com/debian stable InRelease
Les signatures suivantes étaient invalides : EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
Get:13 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [268 kB]
Lecture des listes de paquets...
FAILED
--------------------
Pups::ExecError : cd /var/www/discourse && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsqlite3-dev a échoué avec le retour #<Process::Status: pid 532 exit 100>
Emplacement de l'échec : /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec a échoué avec les paramètres {"cd"=>"$home", "cmd"=>["apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsqlite3-dev", "echo \"gem 'sqlite3'\" >> Gemfile", "su discourse -`Preformatted text`c 'bundle config unset deployment'", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'"]}
Depuis discourse-doctor, j’obtiens :
Vérification de votre nom de domaine . . .
Connexion à xxx réussie.
Vous devriez probablement supprimer tous les plugins non standard et reconstruire.
Tentative de redémarrage du conteneur existant. . .
Architecture x86_64 détectée.
AVERTISSEMENT : le fichier containers/app.yml est lisible par tous. Vous pouvez sécuriser ce fichier en exécutant : chmod o-rwx containers/app.yml
démarrage du conteneur existant
+ /usr/bin/docker start app
Réponse d'erreur du démon : le pilote n'a pas pu programmer la connectivité externe sur le point de terminaison app (c143632e34e1ae05e48759bdf163b4bbe5dc9aaf895f1fb7521f7e3784c26577) : Erreur de démarrage du proxy userland : listen tcp 0.0.0.0:443 : bind : address already in use
Erreur : échec du démarrage des conteneurs : app
Échec du redémarrage du conteneur.
Y a-t-il quelque chose que je puisse faire d’autre qu’une nouvelle installation ?
@fidelio Bonjour, devez-vous vous connecter à une autre base de données comme SQLite depuis votre instance Discourse, c’est-à-dire effectuez-vous une importation de données depuis un autre forum ? Sinon, vous pouvez désactiver cette fonctionnalité et le conteneur d’application Discourse normal sera reconstruit sans problème.
Ma supposition est qu’il n’a pas mis à niveau vers PG 13 et qu’il utilise le modèle pg12 ? C’est un problème qui devrait être résolu de toute façon. Et il est fort probable que le système d’exploitation doive être mis à niveau et que le passage à une nouvelle VM soit la solution.
@pfaffman Ah, il semblait étrange que son journal d’erreurs se plaigne d’essayer d’installer libsqlite3-dev, ou est-ce que Discourse l’utilise normalement pour quelque chose ?
@fidelio Pourriez-vous coller ici la section templates: de votre fichier /var/discourse/containers/app.yml ? Assurez-vous de ne pas inclure les mots de passe qui se trouvent plus bas dans le fichier. Vous pouvez également exécuter /var/discourse/discourse-doctor et il vous aidera à générer un rapport partageable publiquement sur la configuration de votre système.
@rahim123 Bien sûr, voici le rapport discourse-doctor :
Containers/app.yml trouvé
==================== PARAMÈTRES YML ====================
DISCOURSE_HOSTNAME=community.bfs-filmeditor.de
SMTP_ADDRESS=in-v3.mailjet.com
DEVELOPER_EMAILS=xxx
SMTP_PASSWORD=xxx
SMTP_PORT=25
SMTP_USER_NAME=xxx
LETSENCRYPT_ACCOUNT_EMAIL=xxx
==================== INFORMATIONS DOCKER ====================
VERSION DOCKER : Docker version 18.06.1-ce, build e68fc7a
PROCESSUS DOCKER (docker ps -a)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ce58652241d9 local_discourse/app « /sbin/boot » Il y a 2 semaines En cours (14 minutes) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
8e6b8ec432b4 local_discourse/mail-receiver « /sbin/boot » Il y a 11 mois En cours (11 mois) 0.0.0.0:25->25/tcp mail-receiver
ce58652241d9 local_discourse/app « /sbin/boot » Il y a 2 semaines En cours (14 minutes) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
Le conteneur Discourse app est en cours d'exécution
==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/davidtaylorhq/discourse-whos-online.git
- git clone https://github.com/gdpelican/babble.git
- git clone https://github.com/angusmcleod/discourse-quick-messages.git
- git clone https://github.com/angusmcleod/discourse-events.git
- git clone https://github.com/discourse/discourse-calendar.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/davidtaylorhq/discourse-telegram-notifications.git
AVERTISSEMENT :
Vous semblez avoir des plugins non officiels.
Si vous rencontrez des problèmes, vous devriez les désactiver et essayer de reconstruire à nouveau.
Voir https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb pour la liste officielle.
========================================
Version Discourse sur community.bfs-filmeditor.de : TYPO3 CMS
Version Discourse sur localhost : TYPO3 CMS
==================== INFORMATIONS MÉMOIRE ====================
RAM (Mo) : 4039
total used free shared buff/cache available
Mem: 3944 1272 1236 1067 1436 1364
Swap: 0 0 0
==================== VÉRIFICATION ESPACE DISQUE ====================
---------- Espace disque du système d'exploitation ----------
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 78G 60G 18G 78% /
---------- Espace disque du conteneur ----------
Filesystem Size Used Avail Use% Mounted on
overlay 78G 60G 18G 78% /
/dev/vda1 78G 60G 18G 78% /shared
/dev/vda1 78G 60G 18G 78% /var/log
==================== INFORMATIONS DISQUE ====================
Disque /dev/vda : 80 Gio, 85899345920 octets, 167772160 secteurs
Unités : secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 512 octets
Taille d'E/S (minimale/optimale) : 512 octets / 512 octets
Type de table de partitions : gpt
Identifiant du disque : C1F9A1FE-534C-4DAC-9299-5CC180C29DCE
Device Start End Sectors Size Type
/dev/vda1 227328 167772126 167544799 79.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M Microsoft basic data
Les entrées de la table de partitions ne sont pas dans l'ordre du disque.
==================== FIN INFORMATIONS DISQUE ====================
J’ai désactivé les messages rapides mais je ne les ai pas encore supprimés.
GNU nano 2.9.3 containers/app.yml
## ceci est le modèle de conteneur Docker Discourse tout-en-un et autonome
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT LORS DE LA MODIFICATION !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
- "templates/import/mbox.template.yml"
## quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web tel qu'Apache ou nginx,
## voir https://meta.discourse.org/t/17247 pour plus de détails
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Définissez db_shared_buffers à un maximum de 25 % de la mémoire totale.
## sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
db_shared_buffers: "1024MB"
## peut améliorer les performances de tri, mais augmente l'utilisation de la mémoire par connexion
#db_work_mem: "40MB"
## Quelle révision Git ce conteneur doit-il utiliser ? (défaut : tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
## sera défini automatiquement par bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
UNICORN_WORKERS: 4