|
|
FROM golang:1.22-alpine AS builder |
|
|
RUN go env -w GO111MODULE=auto \ |
|
|
&& go env -w CGO_ENABLED=0 |
|
|
|
|
|
|
|
|
WORKDIR /build |
|
|
|
|
|
COPY ./ . |
|
|
|
|
|
RUN set -ex \ |
|
|
&& cd /build \ |
|
|
&& go build -ldflags "-s -w -extldflags '-static'" -o gh-proxy |
|
|
|
|
|
FROM alpine:latest |
|
|
|
|
|
COPY docker-entrypoint.sh /docker-entrypoint.sh |
|
|
|
|
|
RUN chmod +x /docker-entrypoint.sh && \ |
|
|
apk add --no-cache --update \ |
|
|
coreutils \ |
|
|
shadow \ |
|
|
su-exec \ |
|
|
tzdata && \ |
|
|
rm -rf /var/cache/apk/* && \ |
|
|
mkdir -p /app && \ |
|
|
mkdir -p /config && \ |
|
|
useradd -d /config -s /bin/sh abc && \ |
|
|
chown -R abc /config |
|
|
|
|
|
ENV TZ="Asia/Shanghai" |
|
|
ENV UID=99 |
|
|
ENV GID=100 |
|
|
ENV UMASK=002 |
|
|
ENV WHITE_LIST="" |
|
|
ENV BLACK_LIST="\"example3\",\"example4\"" |
|
|
ENV ALLOW_PROXY_ALL="false" |
|
|
ENV OTHER_WHITE_LIST="" |
|
|
ENV OTHER_BLACK_LIST="\"example3\",\"example4\"" |
|
|
ENV HTTP_HOST="" |
|
|
ENV HTTP_PORT="8080" |
|
|
ENV SIZE_LIMIT="10737418240" |
|
|
|
|
|
COPY --from=builder /build/gh-proxy /app/ |
|
|
COPY --from=builder /build/config.json.dist /app/ |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
VOLUME [ "/app" ] |
|
|
|
|
|
ENTRYPOINT [ "/docker-entrypoint.sh" ] |