frp/build/docker/Dockerfile
2022-07-30 21:01:19 +08:00

55 lines
1.1 KiB
Docker

ARG BUILD_IMAGE="golang:1.16"
FROM ${BUILD_IMAGE} as builder
COPY . /app/src
WORKDIR /app/src
ENV \
GO111MODULE="auto" \
GOPROXY=https://goproxy.cn,direct \
GOCACHE=/var/cache/go-build
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add --no-cache binutils make libcap
RUN \
make build \
&& mv /app/src/bin/frpc /app/frpc \
&& chmod +x /app/frpc \
&& mv /app/src/bin/frps /app/frps \
&& chmod +x /app/frps
RUN \
setcap cap_net_bind_service=+eip /app/frps \
&& getcap /app/frps \
&& setcap cap_net_bind_service=+eip /app/frpc \
&& getcap /app/frpc
RUN \
strip /app/frpc \
&& strip /app/frps
FROM scratch
ARG RUN_AS_USER=0
ARG RUN_AS_GROUP=0
ARG GIT_COMMIT=""
ARG GIT_BRANCH=""
ARG BUILD_DATE=""
LABEL \
GIT_COMMIT=${GIT_COMMIT} \
GIT_BRANCH=${GIT_BRANCH} \
BUILD_DATE=${BUILD_DATE} \
RUN_AS_USER=${RUN_AS_USER} \
RUN_AS_GROUP=${RUN_AS_GROUP}
COPY --from=builder /app/frpc /usr/bin/frpc
COPY --from=builder /app/frps /usr/bin/frps
USER ${RUN_AS_USER}:${RUN_AS_GROUP}
CMD [ "/app/frpc" ]