forked from netfishers-onl/Netshot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
34 lines (31 loc) · 1.6 KB
/
Dockerfile
File metadata and controls
34 lines (31 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
ARG NETSHOT_VERSION=0.0.1-dev
ARG GRAALVM_VERSION=21.0.6
FROM debian:12 AS debian-graalvm
ARG GRAALVM_VERSION
RUN apt-get -y update && apt-get -y install wget fontconfig
WORKDIR /usr/lib/jvm
RUN wget --quiet https://download.oracle.com/graalvm/${GRAALVM_VERSION%%.*}/archive/graalvm-jdk-${GRAALVM_VERSION}_linux-x64_bin.tar.gz && \
tar xvzf graalvm-jdk-${GRAALVM_VERSION}_linux-x64_bin.tar.gz && \
rm -f graalvm-jdk-${GRAALVM_VERSION}_linux-x64_bin.tar.gz && \
JDIR=$(ls -d graalvm-jdk-${GRAALVM_VERSION}* | tail -n 1) && \
mkdir ${JDIR}/languages && \
update-alternatives --install /usr/bin/java java /usr/lib/jvm/${JDIR}/bin/java 92100
FROM debian-graalvm AS builder
ARG NETSHOT_VERSION
COPY . /build
WORKDIR /build
RUN GRAALPY_VERSION=$(JAVA_HOME=/ ./mvnw help:evaluate -Dexpression=polyglot.version -q -DforceStdout) && \
echo GRAALPY_VERSION && \
wget --quiet https://github.com/oracle/graalpython/releases/download/graal-${GRAALPY_VERSION}/graalpy-jvm-${GRAALPY_VERSION}-linux-amd64.tar.gz && \
tar xvzf graalpy-jvm-${GRAALPY_VERSION}-linux-amd64.tar.gz && \
mv graalpy-${GRAALPY_VERSION}-linux-amd64 graalpy
RUN sed -i -r "s/VERSION = \".*\";/VERSION = \"$NETSHOT_VERSION\";/g" \
src/main/java/net/netshot/netshot/Netshot.java
RUN ./mvnw package -Dmaven.test.skip
FROM debian-graalvm
RUN mkdir /usr/local/netshot /var/log/netshot
COPY --from=builder /build/graalpy /usr/lib/graalpy
COPY --from=builder /build/target/netshot.jar /usr/local/netshot/netshot.jar
COPY dist/netshot.conf.docker /etc/netshot.conf
EXPOSE 8080
CMD ["/usr/bin/java", "-jar", "/usr/local/netshot/netshot.jar"]