|
| 1 | +FROM alpine:3.21.3 AS build |
| 2 | + |
| 3 | +# set version label |
| 4 | +ARG WEBAPP_VERSION |
| 5 | + |
| 6 | +RUN apk add --no-cache \ |
| 7 | + bash \ |
| 8 | + busybox \ |
| 9 | + curl \ |
| 10 | + git \ |
| 11 | + jq \ |
| 12 | + npm && \ |
| 13 | + mkdir /app && \ |
| 14 | + if [ -z ${WEBAPP_VERSION+x} ]; then \ |
| 15 | + WEBAPP_VERSION=$(curl -sX GET "https://api.github.com/repos/netbootxyz/webapp/releases/latest" \ |
| 16 | + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ |
| 17 | + fi && \ |
| 18 | + curl -o /tmp/webapp.tar.gz -L \ |
| 19 | + "https://github.com/netbootxyz/webapp/archive/${WEBAPP_VERSION}.tar.gz" && \ |
| 20 | + tar xf /tmp/webapp.tar.gz -C /app/ --strip-components=1 && \ |
| 21 | + npm install --prefix /app && \ |
| 22 | + rm -rf /tmp/* |
| 23 | + |
1 | 24 | FROM alpine:3.21.3 |
2 | 25 |
|
3 | 26 | # set version label |
4 | 27 | ARG BUILD_DATE |
5 | 28 | ARG VERSION |
6 | | -ARG WEBAPP_VERSION |
7 | 29 |
|
8 | 30 | LABEL build_version="netboot.xyz version: ${VERSION} Build-date: ${BUILD_DATE}" |
9 | 31 | LABEL maintainer="antonym" |
10 | | -LABEL org.opencontainers.image.description netboot.xyz official docker container - Your favorite operating systems in one place. A network-based bootable operating system installer based on iPXE. |
11 | | - |
12 | | -RUN \ |
13 | | - apk add --no-cache \ |
14 | | - bash \ |
15 | | - busybox \ |
16 | | - curl \ |
17 | | - envsubst \ |
18 | | - git \ |
19 | | - jq \ |
20 | | - nghttp2-dev \ |
21 | | - nginx \ |
22 | | - nodejs \ |
23 | | - shadow \ |
24 | | - sudo \ |
25 | | - supervisor \ |
26 | | - syslog-ng \ |
27 | | - tar \ |
28 | | - dnsmasq && \ |
29 | | - apk add --no-cache --virtual=build-dependencies \ |
30 | | - npm && \ |
31 | | - groupmod -g 1000 users && \ |
32 | | - useradd -u 911 -U -d /config -s /bin/false nbxyz && \ |
33 | | - usermod -G users nbxyz && \ |
34 | | - mkdir /app \ |
35 | | - /config \ |
36 | | - /defaults && \ |
37 | | - if [ -z ${WEBAPP_VERSION+x} ]; then \ |
38 | | - WEBAPP_VERSION=$(curl -sX GET "https://api.github.com/repos/netbootxyz/webapp/releases/latest" \ |
39 | | - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ |
40 | | - fi && \ |
41 | | - curl -o /tmp/webapp.tar.gz -L \ |
42 | | - "https://github.com/netbootxyz/webapp/archive/${WEBAPP_VERSION}.tar.gz" && \ |
43 | | - tar xf /tmp/webapp.tar.gz -C \ |
44 | | - /app/ --strip-components=1 && \ |
45 | | - npm install --prefix /app && \ |
46 | | - apk del --purge build-dependencies && \ |
47 | | - rm -rf /tmp/* |
| 32 | +LABEL org.opencontainers.image.description="netboot.xyz official docker container - Your favorite operating systems in one place. A network-based bootable operating system installer based on iPXE." |
| 33 | + |
| 34 | +RUN apk add --no-cache \ |
| 35 | + bash \ |
| 36 | + busybox \ |
| 37 | + curl \ |
| 38 | + dnsmasq \ |
| 39 | + envsubst \ |
| 40 | + git \ |
| 41 | + jq \ |
| 42 | + nghttp2-dev \ |
| 43 | + nginx \ |
| 44 | + nodejs \ |
| 45 | + shadow \ |
| 46 | + sudo \ |
| 47 | + supervisor \ |
| 48 | + syslog-ng \ |
| 49 | + tar && \ |
| 50 | + groupmod -g 1000 users && \ |
| 51 | + useradd -u 911 -U -d /config -s /bin/false nbxyz && \ |
| 52 | + usermod -G users nbxyz && \ |
| 53 | + mkdir /app /config /defaults |
| 54 | + |
| 55 | +COPY --from=build /app /app |
48 | 56 |
|
49 | 57 | ENV TFTPD_OPTS='' |
50 | 58 | ENV NGINX_PORT='80' |
|
0 commit comments