Tengo una acción de GitHub que compila imágenes y falla cuando intenta hacer un apt-get update. Todavía estoy investigando qué está pasando con eso, pero en una instalación que hice hace 2 horas, obtengo este error si hago un apt-get update dentro del contenedor.
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
Las siguientes firmas no fueron válidas: 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: Las siguientes firmas no fueron válidas: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
E: The repository 'https://dl.yarnpkg.com/debian stable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Todavía estoy revisando mi CI para ver si tengo algo estúpido allí (lo cual es totalmente posible). No está claro qué está haciendo un apt-get update.
EDITAR: Mi CI tiene una plantilla que instala vim. Hace un apt-get update. Nada en una instalación normal hace un apt-get update que pueda ver, así que eso explica por qué tu CI no falla.
Muchas de las plantillas de importación y las plantillas de actualización de postgres (listadas a continuación) hacen un apt-get update, por lo que este será un problema en algún momento.
Sí, esa sería mi próxima pregunta, ya que ejecutar una actualización como esa no es lo predeterminado e introducirá variaciones difíciles de rastrear, porque la mayoría de los sitios usan un sistema operativo estático y dependen de una nueva imagen para actualizar cosas a nivel del sistema operativo.
Si el repositorio apt de yarn se rompe, supongo que también romperá nuestra CI.
Puedo verificar esto la próxima semana. Quizás necesitemos lanzar una nueva imagen base para ello.
Checking your domain name . . .
Connection to xxx succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . .
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
starting up existing container
+ /usr/bin/docker start app
Error response from daemon: driver failed programming external connectivity on endpoint app (c143632e34e1ae05e48759bdf163b4bbe5dc9aaf895f1fb7521f7e3784c26577): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
Error: failed to start containers: app
Failed to restart the container.
¿Hay algo que pueda hacer aparte de una nueva instalación?
@fidelio Hola, ¿necesitas conectarte a otra base de datos como SQLite desde tu instancia de Discourse, es decir, estás realizando una importación de datos desde otro foro? De lo contrario, puedes deshabilitar esa funcionalidad y el contenedor normal de la aplicación Discourse se reconstruirá sin problemas.
Mi suposición es que no ha actualizado a PG 13 y está usando la plantilla pg12? Ese es un problema que debería resolverse de todos modos. Y es una buena apuesta que el sistema operativo necesita ser actualizado y mudarse a una nueva máquina virtual es lo que hay que hacer.
@pfaffman Ah, solo parecía extraño que su registro de errores se quejara de intentar instalar libsqlite3-dev, ¿o Discourse normalmente usa eso para algo?
@fidelio ¿Podrías pegar aquí la sección templates: de tu archivo /var/discourse/containers/app.yml? Asegúrate de no incluir ninguna contraseña que esté más abajo en el archivo. También puedes ejecutar /var/discourse/discourse-doctor y te ayudará a generar un informe público de cómo está configurado tu sistema.
@rahim123 Claro, aquí está el informe de discourse-doctor:
Found containers/app.yml
==================== CONFIGURACIÓN DE 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
==================== INFORMACIÓN DE DOCKER ====================
VERSIÓN DE DOCKER: Docker version 18.06.1-ce, build e68fc7a
PROCESOS DE DOCKER (docker ps -a)
CONTAINER ID IMAGEN COMANDO CREADO ESTADO PUERTOS NOMBRES
ce58652241d9 local_discourse/app “/sbin/boot” hace 2 semanas Arriba 14 minutos 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
8e6b8ec432b4 local_discourse/mail-receiver “/sbin/boot” hace 11 meses Arriba 11 meses 0.0.0.0:25->25/tcp mail-receiver
ce58652241d9 local_discourse/app “/sbin/boot” hace 2 semanas Arriba 14 minutos 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
El contenedor de Discourse app está en ejecución
==================== 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
ADVERTENCIA:
Tienes lo que parecen ser plugins no oficiales.
Si tienes problemas, deberías deshabilitarlos e intentar reconstruir de nuevo.
Consulta https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb para la lista oficial.
========================================
Versión de Discourse en community.bfs-filmeditor.de: TYPO3 CMS
Versión de Discourse en localhost: TYPO3 CMS
==================== INFORMACIÓN DE MEMORIA ====================
RAM (MB): 4039
total used free shared buff/cache available
Mem: 3944 1272 1236 1067 1436 1364
Swap: 0 0 0
==================== COMPROBACIÓN DE ESPACIO EN DISCO ====================
---------- Espacio en disco del SO ----------
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 78G 60G 18G 78% /
---------- Espacio en disco del contenedor ----------
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
==================== INFORMACIÓN DE DISCO ====================
Disco /dev/vda: 80 GiB, 85899345920 bytes, 167772160 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño del sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: gpt
Identificador del disco: 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
Las entradas de la tabla de particiones no están en el orden del disco.
==================== FIN DE INFORMACIÓN DE DISCO ====================
He deshabilitado los mensajes rápidos pero aún no los he eliminado.
GNU nano 2.9.3 containers/app.yml
## esta es la plantilla de contenedor Docker de Discourse todo en uno y autónoma
##
## Después de realizar cambios en este archivo, DEBE reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TENGA MUCHO CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON EXTREMADAMENTE SENSIBLES A ERRORES DE ESPACIO EN BLANCO O ALINEACIÓN!
## visite http://www.yamllint.com/ para validar este archivo según sea necesario
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Descomente estas dos líneas si desea agregar Let's Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
- "templates/import/mbox.template.yml"
## ¿qué puertos TCP/IP debe exponer este contenedor?
## Si desea que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulte https://meta.discourse.org/t/17247 para obtener detalles
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## Establezca db_shared_buffers en un máximo del 25% de la memoria total.
## se establecerá automáticamente mediante bootstrap según la RAM detectada, o puede anularlo
db_shared_buffers: "1024MB"
## puede mejorar el rendimiento de la ordenación, pero aumenta el uso de memoria por conexión
#db_work_mem: "40MB"
## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
## se establecerá automáticamente mediante bootstrap según las CPU detectadas, o puede anularlo
UNICORN_WORKERS: 4