v2fly / docker

docker build repo for v2fly
https://hub.docker.com/r/v2fly/v2fly-core
MIT License
753 stars 215 forks source link

是否有必要将v2ray的日志转发给docker日志收集器 #50

Closed OnqiauJliu closed 1 year ago

OnqiauJliu commented 1 year ago

在nginx的Dockerfile里有如下两行

# forward request and error logs to docker log collector
    && ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log \

它将日志文件连接到标准输出中,这样可以在使用docker logs时能够打印nginx的日志

v2ray有必要将日志连接到标准输出吗? 例如:

FROM --platform=${TARGETPLATFORM} alpine:latest
LABEL maintainer="V2Fly Community <dev@v2fly.org>"

WORKDIR /root
ARG TARGETPLATFORM
ARG TAG
COPY v2ray.sh /root/v2ray.sh

RUN set -ex \
    && apk add --no-cache tzdata openssl ca-certificates \
    && mkdir -p /etc/v2ray /usr/local/share/v2ray /var/log/v2ray \
    && chmod +x /root/v2ray.sh \
        # forward request and error logs to docker log collector
        && ln -sf /dev/stdout /var/log/v2ray/access.log \
        && ln -sf /dev/stderr /var/log/v2ray/error.log \
    && /root/v2ray.sh "${TARGETPLATFORM}" "${TAG}"

ENTRYPOINT ["/usr/bin/v2ray"]

技术方案来源: https://serverfault.com/questions/599103/make-a-docker-application-write-to-stdout https://github.com/nginxinc/docker-nginx/blob/5ce65c3efd395ee2d82d32670f233140e92dba99/mainline/debian/Dockerfile

kslr commented 1 year ago

看起来不错,但有一个小问题,docker 只提供了运行环境没有配置文件,所以日志的路径和名字并不是固定的

OnqiauJliu commented 1 year ago

看起来不错,但有一个小问题,docker 只提供了运行环境没有配置文件,所以日志的路径和名字并不是固定的

我刚刚做了个实验 将nginx的日志路径从/var/log/nginx/access.log修改成其他路径后docker logs 失效 说明nginx的方案是只对默认路径生效 v2ray也可以采取相同策略 虽然日志名和日志路径不固定 但是只针对在/var/log/v2ray/access.log这个路径生效 按照默认配置文件则可将日志导出到docker收集器里 如果手动修改了日志路径位置 那他们一定知道自己在干什么 也没有必要导入到docker收集器里了 :)

kslr commented 1 year ago

你可以提交一个 pr 吗

OnqiauJliu commented 1 year ago

你可以提交一个 pr 吗

我通过下图的命令构建镜像失败了 请问我什么地方没有做对呢? image

kslr commented 1 year ago

你可以检查下下载的文件有没有损坏,签名是一致的吗

OnqiauJliu commented 1 year ago

你可以检查下下载的文件有没有损坏,签名是一致的吗 我输出了一下脚本中LOCAL和STR的值 发现两个字符串“=”之前不同 同时 我将验证方式改成md5通过了检查 image