From 2e97a67522aef17f86c17cb27a4afc6a33c81b0d Mon Sep 17 00:00:00 2001 From: Benjamin Bohard Date: Thu, 11 Aug 2022 09:00:15 +0200 Subject: [PATCH] Nettoyage --- .../{doc-compiler => latex-compiler}/compile | 0 hooks/build/marp-compiler/compile | 4 +++ .../add-packages | 0 .../add-resources | 0 .../latex-compiler/basic-environment | 6 +++++ .../latex-compiler/latex-environment | 5 ++++ .../latex-compiler/marp-environment | 23 ++++++++++++++++ .../containerbuild/marp-compiler/add-packages | 9 +++++++ .../marp-compiler/add-resources | 13 +++++++++ hooks/postbuild/common/done | 3 +++ hooks/postbuild/doc-compiler/export-dist | 5 ++-- .../prebuild/doc-compiler/complete-project-db | 4 --- hooks/prebuild/texlive/complete-project-db | 3 --- package | 2 +- ...{doc-compiler.conf => latex-compiler.conf} | 8 +++--- profiles/marp-compiler.conf | 27 +++++++++++++++++++ 16 files changed, 97 insertions(+), 15 deletions(-) rename hooks/build/{doc-compiler => latex-compiler}/compile (100%) create mode 100755 hooks/build/marp-compiler/compile rename hooks/containerbuild/{doc-compiler => latex-compiler}/add-packages (100%) rename hooks/containerbuild/{doc-compiler => latex-compiler}/add-resources (100%) create mode 100755 hooks/containerbuild/latex-compiler/basic-environment create mode 100755 hooks/containerbuild/latex-compiler/latex-environment create mode 100755 hooks/containerbuild/latex-compiler/marp-environment create mode 100755 hooks/containerbuild/marp-compiler/add-packages create mode 100755 hooks/containerbuild/marp-compiler/add-resources create mode 100755 hooks/postbuild/common/done delete mode 100755 hooks/prebuild/doc-compiler/complete-project-db delete mode 100755 hooks/prebuild/texlive/complete-project-db rename profiles/{doc-compiler.conf => latex-compiler.conf} (78%) create mode 100644 profiles/marp-compiler.conf diff --git a/hooks/build/doc-compiler/compile b/hooks/build/latex-compiler/compile similarity index 100% rename from hooks/build/doc-compiler/compile rename to hooks/build/latex-compiler/compile diff --git a/hooks/build/marp-compiler/compile b/hooks/build/marp-compiler/compile new file mode 100755 index 0000000..8ab4966 --- /dev/null +++ b/hooks/build/marp-compiler/compile @@ -0,0 +1,4 @@ +#!/bin/ash + +cd /src +./build diff --git a/hooks/containerbuild/doc-compiler/add-packages b/hooks/containerbuild/latex-compiler/add-packages similarity index 100% rename from hooks/containerbuild/doc-compiler/add-packages rename to hooks/containerbuild/latex-compiler/add-packages diff --git a/hooks/containerbuild/doc-compiler/add-resources b/hooks/containerbuild/latex-compiler/add-resources similarity index 100% rename from hooks/containerbuild/doc-compiler/add-resources rename to hooks/containerbuild/latex-compiler/add-resources diff --git a/hooks/containerbuild/latex-compiler/basic-environment b/hooks/containerbuild/latex-compiler/basic-environment new file mode 100755 index 0000000..9ef6e79 --- /dev/null +++ b/hooks/containerbuild/latex-compiler/basic-environment @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e + +echo 'RUN apk update && apk upgrade' >> Dockerfile +echo 'RUN apk add --no-cache git' >> Dockerfile diff --git a/hooks/containerbuild/latex-compiler/latex-environment b/hooks/containerbuild/latex-compiler/latex-environment new file mode 100755 index 0000000..342d486 --- /dev/null +++ b/hooks/containerbuild/latex-compiler/latex-environment @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -e + +echo 'RUN apk add --no-cache py3-setuptools py3-pygments font-liberation texlive-full' >> Dockerfile diff --git a/hooks/containerbuild/latex-compiler/marp-environment b/hooks/containerbuild/latex-compiler/marp-environment new file mode 100755 index 0000000..60c499c --- /dev/null +++ b/hooks/containerbuild/latex-compiler/marp-environment @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +set -e + +echo 'ENV NODE_VERSION 16.16.0' >> Dockerfile +echo 'ENV YARN_VERSION 1.22.19' >> Dockerfile +echo 'ENV ARCH x64' >> Dockerfile +echo 'ENV CHECKSUM 2b74f0baaaa931ffc46573874a7d7435b642d28f1f283104ac297499fba99f0a' >> Dockerfile +echo 'RUN addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libstdc++ && apk add --no-cache --virtual .build-deps curl' >> Dockerfile +echo 'RUN curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && ln -s /usr/local/bin/node /usr/local/bin/nodejs && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && apk del .build-deps && node --version && npm --version' >> Dockerfile +echo 'RUN apk add --no-cache --virtual .build-deps-yarn curl gnupg tar && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" || gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apk del .build-deps-yarn && yarn --version' >> Dockerfile + +echo 'RUN apk update && apk upgrade' >> Dockerfile +echo 'RUN apk add --no-cache grep chromium freetype libstdc++ harfbuzz ttf-liberation font-noto-cjk font-noto-devanagari font-noto-arabic font-noto-bengali nss wayland-dev su-exec' >> Dockerfile +echo 'RUN addgroup -S marp && adduser -S -g marp marp && mkdir -p /home/marp/app /home/marp/.cli && chown -R marp:marp /home/marp' >> Dockerfile +echo 'USER marp' >> Dockerfile +echo 'ENV CHROME_PATH /usr/bin/chromium-browser' >> Dockerfile +echo 'RUN git clone https://github.com/marp-team/marp-cli.git /home/marp/.cli' >> Dockerfile +echo 'WORKDIR /home/marp/.cli' >> Dockerfile +echo 'RUN git checkout v2.0.4' >> Dockerfile +echo 'RUN ls .' >> Dockerfile +echo 'RUN yarn add @babel/core' >> Dockerfile +echo 'RUN yarn install --production --frozen-lockfile && yarn cache clean && node marp-cli.js --version' >> Dockerfile diff --git a/hooks/containerbuild/marp-compiler/add-packages b/hooks/containerbuild/marp-compiler/add-packages new file mode 100755 index 0000000..644ffe4 --- /dev/null +++ b/hooks/containerbuild/marp-compiler/add-packages @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +echo 'RUN apk add --no-cache python3 bash' >> Dockerfile +echo 'ENTRYPOINT [""]' >> Dockerfile +echo 'RUN npm install -g --save-prod markdown-it markdown-it-mark markdown-it-include markdown-it-anchor markdown-it-table-of-contents' >> Dockerfile +echo 'ENV NODE_PATH=/usr/local/lib/node_modules' >> Dockerfile +echo 'RUN mkdir /dist && mkdir /dist/private && mkdir /dist/public' >> Dockerfile diff --git a/hooks/containerbuild/marp-compiler/add-resources b/hooks/containerbuild/marp-compiler/add-resources new file mode 100755 index 0000000..db4e23b --- /dev/null +++ b/hooks/containerbuild/marp-compiler/add-resources @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -e + + +if [ -e './datasets/fonts' ] +then +for font_file in $(find . -wholename "./datasets/fonts/*.ttf") +do +echo 'COPY datasets/fonts/$font_file /root/.fonts/$font_file' >> Dockerfile +done +fi +exit 0 diff --git a/hooks/postbuild/common/done b/hooks/postbuild/common/done new file mode 100755 index 0000000..2f89324 --- /dev/null +++ b/hooks/postbuild/common/done @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +tamarin_success "Done :-)" diff --git a/hooks/postbuild/doc-compiler/export-dist b/hooks/postbuild/doc-compiler/export-dist index 62d1d9b..1520bab 100755 --- a/hooks/postbuild/doc-compiler/export-dist +++ b/hooks/postbuild/doc-compiler/export-dist @@ -5,8 +5,9 @@ mkdir -p /dist # Move generated files pushd /src -mv ./output_public /dist/public -mv ./output_private /dist/private +ls -l ./output_public +cp ./output_public/*.pdf /dist/public +cp ./output_private/*.pdf /dist/private popd tamarin_success "Done :-)" diff --git a/hooks/prebuild/doc-compiler/complete-project-db b/hooks/prebuild/doc-compiler/complete-project-db deleted file mode 100755 index 708a6ca..0000000 --- a/hooks/prebuild/doc-compiler/complete-project-db +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -cd src - diff --git a/hooks/prebuild/texlive/complete-project-db b/hooks/prebuild/texlive/complete-project-db deleted file mode 100755 index 1ed586d..0000000 --- a/hooks/prebuild/texlive/complete-project-db +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -cd src diff --git a/package b/package index db7e445..1dc72e8 100755 --- a/package +++ b/package @@ -41,7 +41,7 @@ def build_image(build_workspace, base_image, profile_name, profile, debug=False, # Run hooks tamarin.run_profile_hooks(profile, 'containerbuild', cwd=build_workspace, env=hooks_env, debug=debug) - image_tag = "tamarin:{:s}_{:s}_{:d}".format(profile_name, base_image.replace(':', '_'), os.getpid()) + image_tag = "tamarin:{:s}_{:s}_{:d}".format(profile_name, base_image.replace(':', '_').replace('/', '_'), os.getpid()) build_args = [ "build", "-t", image_tag ] diff --git a/profiles/doc-compiler.conf b/profiles/latex-compiler.conf similarity index 78% rename from profiles/doc-compiler.conf rename to profiles/latex-compiler.conf index 7f7e56e..aab2d2e 100644 --- a/profiles/doc-compiler.conf +++ b/profiles/latex-compiler.conf @@ -6,8 +6,8 @@ default_image=ubuntu:jammy # Configuration de l’étape de pré-construction du conteneur [containerbuild] hooks= - containerbuild/doc-compiler/add-packages, - containerbuild/doc-compiler/add-resources, + containerbuild/latex-compiler/add-packages, + containerbuild/latex-compiler/add-resources, # Configuration de l’étape de pré-compilation des documents [prebuild] @@ -15,15 +15,13 @@ hooks= prebuild/debian/copy-sources-to-workspace, prebuild/debian/run-project-hooks, prebuild/debian/load-project-db, - prebuild/doc-compiler/complete-project-db, # Configuration de l’étape de compilation du document [build] -hooks=build/doc-compiler/compile +hooks=build/latex-compiler/compile # Configuration de l’étape de post-compilation du document [postbuild] hooks= postbuild/debian/run-project-hooks, postbuild/doc-compiler/export-dist, - diff --git a/profiles/marp-compiler.conf b/profiles/marp-compiler.conf new file mode 100644 index 0000000..3d47157 --- /dev/null +++ b/profiles/marp-compiler.conf @@ -0,0 +1,27 @@ +# Configuration générale du profil +[profile] +# Image Docker par défaut +default_image=marpteam/marp-cli:latest + +# Configuration de l’étape de pré-construction du conteneur +[containerbuild] +hooks= + containerbuild/marp-compiler/add-packages, + containerbuild/marp-compiler/add-resources, + +# Configuration de l’étape de pré-compilation des documents +[prebuild] +hooks= + prebuild/debian/copy-sources-to-workspace, + prebuild/debian/run-project-hooks, + prebuild/debian/load-project-db, + +# Configuration de l’étape de compilation du document +[build] +hooks=build/latex-compiler/compile + +# Configuration de l’étape de post-compilation du document +[postbuild] +hooks= + postbuild/debian/run-project-hooks, + postbuild/common/done