Dockerfile 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. FROM debian:jessie-slim
  2. LABEL maintainer="jjk <jjk@iske.dk>"
  3. RUN groupadd --gid 1000 node \
  4. && useradd --uid 1000 --gid node --shell /bin/bash --create-home node
  5. ENV NODE_VERSION 12.16.2
  6. RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
  7. && case "${dpkgArch##*-}" in \
  8. amd64) ARCH='x64';; \
  9. ppc64el) ARCH='ppc64le';; \
  10. s390x) ARCH='s390x';; \
  11. arm64) ARCH='arm64';; \
  12. armhf) ARCH='armv7l';; \
  13. i386) ARCH='x86';; \
  14. *) echo "unsupported architecture"; exit 1 ;; \
  15. esac \
  16. && set -ex \
  17. # libatomic1 for arm
  18. && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends \
  19. && rm -rf /var/lib/apt/lists/* \
  20. && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
  21. && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
  22. && ln -s /usr/local/bin/node /usr/local/bin/nodejs \
  23. # smoke tests
  24. && node --version \
  25. && npm --version
  26. RUN mkdir -p /app/data && mkdir -p /app/code
  27. WORKDIR /app/code
  28. COPY node_modules /app/code/node_modules/
  29. COPY index.js /app/code/
  30. COPY package.json /app/code
  31. COPY docker-entrypoint.sh /app/code/
  32. RUN set -x \
  33. && chmod +x /app/code/docker-entrypoint.sh
  34. RUN ln -s /app/code/docker-entrypoint.sh /bin/apache_exporter
  35. EXPOSE 9117
  36. ENTRYPOINT ["/app/code/docker-entrypoint.sh"]
  37. CMD [ "/app/code/docker-entrypoint.sh" ]