[Nota: Mi caso no es realmente un problema de #instalación, pero el error producido es el mismo que en este tema y mi solución (a continuación) puede ser útil para otros. Moderadores (@pfaffman?), siéntanse libres de categorizar esto de manera más apropiada.]
El mensaje ArgumentError aparece después de ejecutar ./launcher rebuild app en mi instancia autohospedada de Docker (instalada y funcionando durante muchos años). Ocurre porque unicorn no puede escribir un archivo pid en el directorio /var/www/discourse/tmp/pids (dentro del contenedor). El registro muestra un bucle de mensajes ArgumentError mientras intenta escribir ese archivo cada pocos segundos.
Inicio sesión en el contenedor desde la máquina host a través de
docker exec -it app bash
Desde dentro del contenedor ejecuto
find /var/www/discourse -printf '%u:%g\n' | sort -t: -u
Esto me muestra una lista de los propietario:grupos en ese directorio
root:root
discourse:discourse
Luego hago que el directorio /var/www/discourse/tmp/pids sea legible por todos a través de
chmod +r /var/www/discourse/tmp/pids
En este punto, se escribe un archivo unicorn.pid en ese directorio. El archivo tiene un propietario:grupo de discourse:www-data.
Mi solución fue cambiar recursivamente la propiedad de /var/www/discourse a discourse:www-data.
chown -R discourse:www-data /var/www/discourse
Esto lleva mucho tiempo ya que hay más de 100.000 archivos. Probablemente no sea necesario hacerlo en todo el directorio, pero eso es lo que hice.
Por último, hice que el archivo /etc/postgres/13/main/pb_hba.conf fuera legible por todos
chmod +r /etc/postgres/13/main/pg_hba.conf
Reinicie el contenedor y todo funciona.
Parece que la configuración de propiedad de archivos no es del todo correcta, pero no tengo suficientes conocimientos sobre el arte de establecer permisos para encontrar una solución más simple. El hecho de que el archivo unicorn.pid tenga un grupo www-data parece ser clave.
Parece que tendría que pasar por este procedimiento cada vez que ejecute un rebuild (es decir, cada vez que cambie el archivo app.yml). Tenga en cuenta también que no parece ser un problema con ningún plugin en particular.
Espero que sea suficiente información para que uno de los desarrolladores lo revise y diga: “¡Por supuesto! Solo tengo que cambiar x para solucionarlo”.