github.com/imgk/caddy-trojan@v0.0.0-20221206043256-2631719e16c8/Dockerfile (about)

     1  FROM golang:1.18-alpine AS builder
     2  
     3  RUN set -e \
     4      && apk upgrade \
     5      && apk add jq curl git \
     6      && export version=$(curl -s "https://api.github.com/repos/caddyserver/caddy/releases/latest" | jq -r .tag_name) \
     7      && echo ">>>>>>>>>>>>>>> ${version} ###############" \
     8      && go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest \
     9      && xcaddy build ${version} --output /caddy \
    10          --with github.com/caddy-dns/route53 \
    11          --with github.com/caddy-dns/cloudflare \
    12          --with github.com/caddy-dns/alidns \
    13          --with github.com/caddy-dns/vultr \
    14          --with github.com/caddy-dns/dnspod \
    15          --with github.com/caddy-dns/duckdns \
    16          --with github.com/caddy-dns/gandi \
    17          --with github.com/hairyhenderson/caddy-teapot-module \
    18          --with github.com/caddyserver/transform-encoder \
    19          --with github.com/mholt/caddy-webdav \
    20          --with github.com/imgk/caddy-trojan \
    21          --with github.com/imgk/caddy-pprof
    22  
    23  
    24  FROM alpine AS dist
    25  
    26  LABEL maintainer="mritd <mritd@linux.com>"
    27  
    28  # See https://caddyserver.com/docs/conventions#file-locations for details
    29  ENV XDG_CONFIG_HOME /config
    30  ENV XDG_DATA_HOME /data
    31  
    32  ENV TZ Asia/Shanghai
    33  
    34  COPY --from=builder /caddy /usr/bin/caddy
    35  ADD https://raw.githubusercontent.com/caddyserver/dist/master/config/Caddyfile /etc/caddy/Caddyfile
    36  ADD https://raw.githubusercontent.com/caddyserver/dist/master/welcome/index.html /usr/share/caddy/index.html
    37  
    38  # set up nsswitch.conf for Go's "netgo" implementation
    39  # - https://github.com/golang/go/blob/go1.9.1/src/net/conf.go#L194-L275
    40  # - docker run --rm debian:stretch grep '^hosts:' /etc/nsswitch.conf
    41  RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
    42  
    43  RUN set -e \
    44      && apk upgrade \
    45      && apk add bash tzdata mailcap \
    46      && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime \
    47      && echo ${TZ} > /etc/timezone \
    48      && rm -rf /var/cache/apk/*
    49  
    50  VOLUME /config
    51  VOLUME /data
    52  
    53  EXPOSE 80
    54  EXPOSE 443
    55  EXPOSE 2019
    56  
    57  WORKDIR /srv
    58  
    59  CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]