From 78834ada3ddcc9f96c2515ce816b0f781d75eadf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@inrae.fr>
Date: Sun, 3 May 2020 22:58:29 +0200
Subject: [PATCH] Ajoute un Dockerfile.

---
 .dockerignore |  3 ++
 Dockerfile    | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++
 package.json  |  4 +--
 3 files changed, 87 insertions(+), 3 deletions(-)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..6f01cb2
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+/node_modules
+/public
+/.?*
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..5ccd71e
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,83 @@
+ARG NODE_VERSION=14
+ARG DEBIAN_RELEASE=buster
+FROM node:${NODE_VERSION}-${DEBIAN_RELEASE} AS builder
+
+RUN apt-get update -yq && apt-get install -yq unzip xz-utils wget
+
+RUN mkdir /src
+
+ARG REVEALJS_VERSION=v1.2.0
+RUN wget -nv -O /tmp/reveal.js.zip https://gitlab.irstea.fr/pole-is/tools/reveal.js/-/archive/${REVEALJS_VERSION}/reveal.js-${REVEALJS_VERSION}.zip \
+    && cd src \
+    && unzip /tmp/reveal.js.zip \
+    && mv reveal.js-${REVEALJS_VERSION} reveal.js \
+    && cd reveal.js \
+    && ./pleasew build :reveal.js
+
+FROM node:${NODE_VERSION}-${DEBIAN_RELEASE}
+
+COPY --from=builder /src/reveal.js/plz-out/gen/reveal.js /opt/reveal.js
+
+RUN apt-get update -yq \
+    && apt-get install -yq --no-install-recommends \
+    libappindicator3-1 \
+    libasound2 \
+    libatspi2.0-0 \
+    libgtk-3-0 \
+    libnotify4 \
+    libnss3 \
+    libsecret-1-0 \
+    libx11-xcb1 \
+    libxss1 \
+    libxtst6 \
+    wget \
+    xdg-utils \
+    xfonts-75dpi \
+    xfonts-base \
+    && find /var/*/apt -type f -delete
+
+ARG PANDOC_VERSION=2.9.2.1
+RUN wget -nv -O /tmp/pandoc.tar.gz https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_VERSION}-linux-amd64.tar.gz \
+    && cd /usr/local \
+    && tar xfz /tmp/pandoc.tar.gz --strip-components=1 \
+    && rm /tmp/pandoc.tar.gz \
+    && pandoc --version
+
+ARG DRAWIO_VERSION=13.0.3
+RUN wget -nv -O /tmp/draw.io.deb https://github.com/jgraph/drawio-desktop/releases/download/v${DRAWIO_VERSION}/draw.io-amd64-${DRAWIO_VERSION}.deb \
+    && dpkg -i /tmp/draw.io.deb \
+    && rm /tmp/draw.io.deb
+
+ARG WKHTMLTOPDF_VERSION=0.12.5
+ARG DEBIAN_RELEASE=buster
+RUN wget -nv -O /tmp/wkhtmltox.deb https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/${WKHTMLTOPDF_VERSION}/wkhtmltox_${WKHTMLTOPDF_VERSION}-1.${DEBIAN_RELEASE}_amd64.deb \
+    && dpkg -i /tmp/wkhtmltox.deb \
+    && rm /tmp/wkhtmltox.deb \
+    && wkhtmltopdf --version
+
+RUN mkdir -p /src /opt/prezbuilder
+COPY src/ /src/
+COPY assets/ /opt/prezbuilder/assets/
+COPY lib/ /opt/prezbuilder/lib/
+COPY gulpfile.esm.js package.json package-lock.json /opt/prezbuilder/
+
+ENV NODE_ENV=production
+RUN cd /opt/prezbuilder/ \
+    && ls -la \
+    && NPM_CONFIG_CACHE=/tmp/.npm npm install \\
+    && rm -rf /tmp/.npm
+
+ENV SERVER_HOST=0.0.0.0 \
+    SERVER_PORT=3000 \
+    SRC=/src \
+    OUTPUT=/public \
+    WKHTMLTOPDF_BINARY=/usr/local/bin/wkhtmltopdf \
+    DRAWIO_BINARY=/opt/draw.io/drawio
+
+RUN mkdir -p -m 0777 $OUTPUT
+
+WORKDIR /opt/prezbuilder
+EXPOSE 3000/tcp 35729/tcp
+
+ENTRYPOINT ["/opt/prezbuilder/node_modules/.bin/gulp"]
+CMD ["dev"]
diff --git a/package.json b/package.json
index 211e40f..ec1f010 100644
--- a/package.json
+++ b/package.json
@@ -1,10 +1,8 @@
 {
   "name": "prezbuilder",
   "version": "1.0.0",
-  "description": "Build INRAE-themed reveal.js presentatiokns.",
-  "main": "index.js",
+  "description": "Build INRAE-themed reveal.js presentations.",
   "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1",
     "build": "gulp build",
     "dev": "gulp dev",
     "lint": "eslint --color ."
-- 
GitLab