Registro de contenedores alpinos Lighttpd

Registro de contenedores alpinos Lighttpd

El contexto es que quiero servir un sitio web estático dentro de un contenedor acoplable para poder tener algunas métricas dedicadas y quiero que los registros usen stdout/stderr.

Para hacer eso pensé en usar Lighttpd con una imagen de Alpine.

encontré un consejoaquídonde creamos un enlace a stdout, pero después de crear el enlace los permisos cambian y lighttpd deja de escribir en access.log.

Intenté cambiar server.usernamelighttpd.conf a "root" pero se niega a hacerlo diciendo ' (server.c.1330) No estableceré uid en 0.

Intenté cambiar los permisos de access.log después de la creación del enlace sin éxito.

¿Hay alguna manera de configurar lighttpd para usar stdout/stderr?

Mi configuración actual:

var.basedir  = "/var/www/localhost"
var.logdir   = "/var/log/lighttpd"
var.statedir = "/var/lib/lighttpd"

server.modules   = ( "mod_access",
                     "mod_setenv",
                     "mod_rewrite",
                     "mod_redirect",
                     "mod_status",
                     "mod_simple_vhost",
                     "mod_evhost",
                     "mod_alias",
                     "mod_userdir",
                     "mod_secdownload",
                     "mod_fastcgi",
                     "mod_proxy",
                     "mod_cgi",
                     "mod_ssi",
                     "mod_compress",
                     "mod_usertrack",
                     "mod_expire",
                     "mod_rrdtool",
                     "mod_accesslog" )

include "mime-types.conf"

server.errorlog   = "/var/log/lighttpd/error.log"
server.pid-file      = "/var/run/lighttpd.pid"

server.username             = "lighttpd"
server.groupname            = "wheel"

server.document-root = var.basedir + "/htdocs"

static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi")

url.access-deny = ("~", ".inc")

accesslog.filename = "/var/log/lighttpd/access.log"
index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )

Mi Dockerfile actual:

FROM alpine:3.12

RUN adduser -S lighttpd -G wheel
RUN apk update --no-cache
RUN apk add  --update --no-cache \
    lighttpd=1.4.55-r1

COPY ./static /var/www/localhost/htdocs/
COPY lighttpd/* /etc/lighttpd/

RUN ln -sf /dev/stdout /var/log/lighttpd/access.log \
   && ln -sf /dev/stderr /var/log/lighttpd/error.log

EXPOSE 80 443

ENTRYPOINT ["/usr/sbin/lighttpd", "-D", "-f", "/etc/lighttpd/lighttpd.conf"]

Respuesta1

Si comenta server.errorlog, lighttpd iniciará sesión en stderr.

Si accesslog.filename = "/dev/stdout"no funciona, ¿has probado a configurarlo accesslog.filename = "/proc/self/fd/1"?

información relacionada