es4x.dockerfile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. FROM ubuntu:18.04
  2. ENV DEBIAN_FRONTEND noninteractive
  3. RUN apt-get update && \
  4. apt-get -y install curl && \
  5. rm -rf /var/lib/apt/lists/*
  6. ENV GRAALVM_VERSION=1.0.0-rc6
  7. # Get GraalVM CE
  8. RUN echo "Pulling graalvm ${GRAALVM_VERSION} binary from Github." \
  9. && curl -sSLf https://github.com/oracle/graal/releases/download/vm-${GRAALVM_VERSION}/graalvm-ce-${GRAALVM_VERSION}-linux-amd64.tar.gz > /tmp/graalvm-ce-${GRAALVM_VERSION}-linux-amd64.tar.gz \
  10. && mkdir -p /opt/java \
  11. && tar -zxf /tmp/graalvm-ce-${GRAALVM_VERSION}-linux-amd64.tar.gz -C /opt/java \
  12. && rm /tmp/graalvm-ce-${GRAALVM_VERSION}-linux-amd64.tar.gz
  13. ENV GRAALVM_HOME=/opt/java/graalvm-ce-${GRAALVM_VERSION}
  14. ENV JAVA_HOME=${GRAALVM_HOME}
  15. ENV PATH=${PATH}:${JAVA_HOME}/bin
  16. # Set working dir
  17. RUN mkdir /app
  18. WORKDIR /app
  19. COPY ./ /app
  20. # Get dependencies
  21. RUN npm --unsafe-perm install
  22. # Generate a runtime blog
  23. RUN npm run package
  24. CMD ${GRAALVM_HOME}/bin/java \
  25. -server \
  26. -XX:+UseNUMA \
  27. -XX:+UseParallelGC \
  28. -XX:+AggressiveOpts \
  29. -Dvertx.disableMetrics=true \
  30. -Dvertx.disableH2c=true \
  31. -Dvertx.disableWebsockets=true \
  32. -Dvertx.flashPolicyHandler=false \
  33. -Dvertx.threadChecks=false \
  34. -Dvertx.disableContextTimings=true \
  35. -Dvertx.disableTCCL=true \
  36. -jar \
  37. target/es4x-0.0.1-fat.jar \
  38. --instances \
  39. `grep --count ^processor /proc/cpuinfo`