Dockerfile 2.15 KB
Newer Older
1
ARG NODE_VERSION=12
Guillaume Perréal's avatar
Guillaume Perréal committed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

17
FROM node:${NODE_VERSION}-${DEBIAN_RELEASE}-slim
Guillaume Perréal's avatar
Guillaume Perréal committed
18
19
20
21
22

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 \
23
24
25
26
27
28
29
    ca-certificates \
    fontconfig \
    libjpeg62-turbo \
    libx11-6 \
    libxcb1 \
    libxext6 \
    libxrender1 \
Guillaume Perréal's avatar
Guillaume Perréal committed
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    wget \
    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 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 \
65
    WKHTMLTOPDF_BINARY=/usr/local/bin/wkhtmltopdf
Guillaume Perréal's avatar
Guillaume Perréal committed
66
67
68
69
70
71
72
73

RUN mkdir -p -m 0777 $OUTPUT

WORKDIR /opt/prezbuilder
EXPOSE 3000/tcp 35729/tcp

ENTRYPOINT ["/opt/prezbuilder/node_modules/.bin/gulp"]
CMD ["dev"]