|
1 | | -FROM lsiobase/ubuntu:bionic |
| 1 | +FROM lsiobase/alpine:3.11 as buildstage |
2 | 2 |
|
3 | | -# set version label |
4 | | -ARG BUILD_DATE |
5 | | -ARG VERSION |
| 3 | +# build variables |
6 | 4 | ARG PWNDROP_RELEASE |
7 | | -LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" |
8 | | -LABEL maintainer="aptalca" |
9 | 5 |
|
10 | 6 | RUN \ |
11 | | - echo "**** install pwndrop ****" && \ |
| 7 | + echo "**** install build packages ****" && \ |
| 8 | + apk add --no-cache \ |
| 9 | + curl \ |
| 10 | + g++ \ |
| 11 | + gcc \ |
| 12 | + git \ |
| 13 | + go \ |
| 14 | + tar |
| 15 | + |
| 16 | +RUN \ |
| 17 | +echo "**** fetch source code ****" && \ |
12 | 18 | if [ -z ${PWNDROP_RELEASE+x} ]; then \ |
13 | 19 | PWNDROP_RELEASE=$(curl -sX GET "https://api.github.com/repos/kgretzky/pwndrop/releases/latest" \ |
14 | 20 | | awk '/tag_name/{print $4;exit}' FS='[""]'); \ |
15 | 21 | fi && \ |
16 | | - mkdir -p /app/pwndrop && \ |
| 22 | + mkdir -p \ |
| 23 | + /tmp/pwndrop && \ |
17 | 24 | curl -o \ |
18 | | - /tmp/pwndrop.tar.gz -L \ |
19 | | - "https://github.com/kgretzky/pwndrop/releases/download/${PWNDROP_RELEASE}/pwndrop-linux-amd64.tar.gz" && \ |
20 | | - tar xzf /tmp/pwndrop.tar.gz -C \ |
21 | | - /app/pwndrop --strip-components=1 && \ |
22 | | - echo "**** clean up ****" && \ |
23 | | - rm -rf \ |
24 | | - /tmp/* \ |
25 | | - /var/lib/apt/lists/* \ |
26 | | - /var/tmp/* |
| 25 | + /tmp/pwndrop-src.tar.gz -L \ |
| 26 | + "https://github.com/kgretzky/pwndrop/archive/${PWNDROP_RELEASE}.tar.gz" && \ |
| 27 | + tar xf \ |
| 28 | + /tmp/pwndrop-src.tar.gz -C \ |
| 29 | + /tmp/pwndrop --strip-components=1 && \ |
| 30 | + echo "**** compile pwndrop ****" && \ |
| 31 | + cd /tmp/pwndrop && \ |
| 32 | + go build -ldflags="-s -w" \ |
| 33 | + -o /app/pwndrop/pwndrop \ |
| 34 | + -mod=vendor \ |
| 35 | + main.go && \ |
| 36 | + cp -r ./www /app/pwndrop/admin |
| 37 | + |
| 38 | +############## runtime stage ############## |
| 39 | +FROM lsiobase/alpine:3.11 |
| 40 | + |
| 41 | +# set version label |
| 42 | +ARG BUILD_DATE |
| 43 | +ARG VERSION |
| 44 | +ARG PWNDROP_RELEASE |
| 45 | +LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" |
| 46 | +LABEL maintainer="aptalca" |
| 47 | + |
| 48 | +# add pwndrop |
| 49 | +COPY --from=buildstage /app/pwndrop/ /app/pwndrop/ |
27 | 50 |
|
28 | 51 | # add local files |
29 | 52 | COPY /root / |
|
0 commit comments