| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| ########################################################################################## |
| # Build Apache Training |
| ########################################################################################## |
| |
| # Fixed version of this in order to have a fixed JDK version |
| FROM azul/zulu-openjdk:21 as build |
| |
| # Install some stuff we need to run the build |
| RUN apt update -y |
| RUN apt install -y git graphviz wget bzip2 python3 python3-pip imagemagick curl protobuf-compiler mc |
| |
| # Install the version 1.76.0 of the Rust toolchain |
| RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.76.0 |
| ENV PATH="/root/.cargo/bin:$PATH" |
| # Install svgbob |
| RUN cargo install svgbob_cli |
| RUN cp /root/.cargo/bin/svgbob_cli /usr/local/bin |
| |
| # Forced version of pillow as with version 10 the build fails |
| RUN python3 -m pip install --upgrade pip setuptools==57.5.0 seqdiag blockdiag actdiag nwdiag convert racks opc-diag pillow==9.5.0 |
| |
| #ENV CONDA_DIR /opt/conda |
| #RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh -O /root/miniconda.sh |
| #RUN sh /root/miniconda.sh -b -p $CONDA_DIR |
| #ENV PATH=$CONDA_DIR/bin:$PATH |
| #RUN conda update -y conda |
| #RUN rm /root/miniconda.sh |
| #RUN wget --quiet https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh -O /root/miniconda.sh && sh /root/miniconda.sh -b -p /opt/conda |
| #ENV PATH=$CONDA_DIR/bin:$PATH |
| |
| # Install vg2svg for rendering vega diagrams |
| # NOTE: Installing vega-cli doesn't seem to work as dependencies are not available for arm64 (silicon) |
| ENV NODE_VERSION=18.20.4 |
| RUN curl --silent -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash |
| RUN /root/.nvm/install.sh |
| ENV PATH=/root/.nvm/versions/node/v$NODE_VERSION/bin:$PATH |
| #RUN npm install --no-audit vega |
| |
| #RUN wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 |
| #RUN bunzip2 phantomjs-2.1.1-linux-x86_64.tar.bz2 |
| #RUN tar -xvf phantomjs-2.1.1-linux-x86_64.tar |
| |
| # Install ERD |
| RUN apt install -y golang |
| ENV PATH=/root/go/bin:$PATH |
| RUN go install github.com/kaishuu0123/erd-go@v1.4.6 |
| |
| # Install Syntrax |
| # https://kevinpt.github.io/syntrax/ |
| # Problem is, that newer versions of python don't have use_2to3 |
| #RUN apt install -y libcairo2-dev pkg-config python3-dev python3-gi python3-gi-cairo gir1.2-gtk-4.0 |
| RUN apt install -y libcairo2-dev pkg-config python3-dev python3-gi gir1.2-gtk-4.0 |
| RUN python3 -m pip install --upgrade pycairo pango syntrax |
| # For some reason, if we install this before the python stuff, it doesn't work |
| RUN apt install -y python3-gi-cairo |
| |
| # Install Mermaid |
| # Mermaid seems to have issues with Apple Silicon |
| #RUN apt install -y nodejs npm |
| RUN npm install -g @mermaid-js/mermaid-cli |
| |
| # Required for running on Windows systems |
| RUN apt install -y dos2unix |
| |
| # Change the working directory (where commands are executed) into the new "ws" directory |
| WORKDIR /ws |