common_log가 있는 Docker의 캐디

2926 단어 logloggingdockercaddy
Caddyv2.5.0부터 "HTTP 액세스 로그 및 single_field 인코더에서 더 이상 사용되지 않는 common_log 필드를 제거했습니다."주로 로그만 보는 캐디의 일반 사용자인 저에게는 이것이 불편합니다. 자동화를 위해 json 파일을 분석하는 데 어떤 도구도 사용하지 않습니다. 그래야 할까요? 그러나 캐디의 좋은 사람들은 우리를 높고 건조하게 두지 않습니다. "이것에 의존하는 경우 transform encoder plugin를 사용하여 공통 로그 형식으로 로그를 인코딩할 수 있습니다."그러나 Docker를 사용하고 있기 때문에 Docker Hub에서 가져온 Caddy 버전에는 이 플러그인을 사용할 수 없습니다... 빌더를 입력합니다.

Caddy's official Docker Hub documentation 에 따라 빌더 이미지( caddy:builder )로 자체 이미지Dockerfile를 생성한 다음 자체 캐디 이미지를 생성해야 합니다.

Dockerfile은 다음과 같습니다.

ARG VERSION=2.5.2

FROM caddy:${VERSION}-builder AS builder

RUN xcaddy build \
  --with github.com/caddyserver/transform-encoder

FROM caddy:${VERSION}

COPY --from=builder /usr/bin/caddy /usr/bin/caddy


마법의 부분은 다음 줄입니다.

RUN xcaddy build \
  --with github.com/caddyserver/transform-encoder
Which pulls the transform-encoder plugin and installs it. Then we are switching to a "normal" Caddy image and just replacing the binary with our custom built one.


이제 이 Dockerfile을 로컬에서 빌드하고 실행하기만 하면 됩니다!



캐디파일



다음은 Caddyfile에서 사용하는 구문입니다.

log {
        format transform "{common_log}"
        output file /var/log/homepage.log
    }


tl;박사




docker pull mroggy85/caddy:2.5.2


내 Docker Hub 페이지 참조: https://hub.docker.com/r/mroggy85/caddy

원본 블로그 게시물: https://okuno.se/blog/caddy-in-docker-with-common-log

좋은 웹페이지 즐겨찾기