Skip to content
Snippets Groups Projects
Dockerfile 1.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    #
    # Build stage
    #
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    FROM debian:bullseye as build-env
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    
    RUN apt-get update && apt-get install -y python3-pip wget
    RUN pip3 install pandoc-plantuml-filter
    
    # make slim-jdk
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    RUN wget https://download.java.net/java/GA/jdk19/877d6127e982470ba2a7faa31cc93d04/36/GPL/openjdk-19_linux-x64_bin.tar.gz -P /tmp/
    RUN tar xfvz /tmp/openjdk-19_linux-x64_bin.tar.gz -C /tmp/
    RUN /tmp/jdk-19/bin/jlink --output /opt/openjdk-19-slim \
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
        --add-modules java.base,java.datatransfer,java.desktop,java.logging,java.prefs,java.scripting,java.xml
    
    # make plant UML
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    RUN mkdir -p /opt/plantuml/
    RUN wget https://github.com/plantuml/plantuml/releases/download/v1.2022.8/plantuml-1.2022.8.jar -P /opt/plantuml/
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    RUN echo '#!/bin/bash\n\
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
        /opt/openjdk-19-slim/bin/java -jar /opt/plantuml/plantuml-1.2022.8.jar $@' >/usr/bin/plantuml
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    RUN chmod a+x /usr/bin/plantuml
    
    #
    # Run stage
    #
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    FROM debian:bullseye as setup-env
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    RUN apt-get update && apt-get install -y python3 pandoc graphviz libfreetype6 fontconfig git && apt-get clean && rm -rf /var/lib/apt/lists/*
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    
    RUN ln -s /usr/bin/python3 /usr/bin/python
    
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    COPY --from=build-env /usr/local/lib/python3.9/dist-packages/ /usr/local/lib/python3.9/dist-packages/
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    COPY --from=build-env /usr/bin/plantuml /usr/bin/plantuml
    COPY --from=build-env /usr/local/bin/pandoc-plantuml /usr/local/bin/pandoc-plantuml
    COPY --from=build-env /opt/plantuml/ /opt/plantuml/
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    COPY --from=build-env /opt/openjdk-19-slim/ /opt/openjdk-19-slim/
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    
    WORKDIR /var/docs/
    
    Nicolas Pernoud's avatar
    Nicolas Pernoud committed
    ENTRYPOINT ["pandoc", "--filter", "pandoc-plantuml"]