|
| 1 | +FROM ubuntu:24.04 |
| 2 | + |
| 3 | +ARG BUILDPLATFORM |
| 4 | +ARG DEBIAN_FRONTEND=noninteractive |
| 5 | + |
| 6 | +USER root |
| 7 | +WORKDIR /root |
| 8 | + |
| 9 | +RUN apt update && apt install -y \ |
| 10 | + apt-transport-https ca-certificates gnupg curl wget git zip unzip less zsh net-tools iputils-ping jq lsof |
| 11 | + |
| 12 | +ENV HOME="/root" |
| 13 | + |
| 14 | +# -------------------------------------- |
| 15 | +# Git |
| 16 | +# -------------------------------------- |
| 17 | +# Need to add the devcontainer workspace folder as a safe directory to enable git |
| 18 | +# version control system to be enabled in the containers file system. |
| 19 | +RUN git config --global --add safe.directory "/workspaces/plugin-template" |
| 20 | +# -------------------------------------- |
| 21 | + |
| 22 | +# -------------------------------------- |
| 23 | +# Oh my zsh |
| 24 | +# -------------------------------------- |
| 25 | +RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" -- \ |
| 26 | + -t robbyrussell \ |
| 27 | + -p git -p node -p npm |
| 28 | + |
| 29 | +ENV SHELL=/bin/zsh |
| 30 | +# -------------------------------------- |
| 31 | + |
| 32 | +# -------------------------------------- |
| 33 | +# Java |
| 34 | +# -------------------------------------- |
| 35 | +ARG OS_ARCHITECTURE |
| 36 | + |
| 37 | +RUN mkdir -p /usr/java |
| 38 | +RUN echo "Building on platform: $BUILDPLATFORM" |
| 39 | +RUN case "$BUILDPLATFORM" in \ |
| 40 | + "linux/amd64") OS_ARCHITECTURE="x64_linux" ;; \ |
| 41 | + "linux/arm64") OS_ARCHITECTURE="aarch64_linux" ;; \ |
| 42 | + "darwin/amd64") OS_ARCHITECTURE="x64_mac" ;; \ |
| 43 | + "darwin/arm64") OS_ARCHITECTURE="aarch64_mac" ;; \ |
| 44 | + *) echo "Unsupported BUILDPLATFORM: $BUILDPLATFORM" && exit 1 ;; \ |
| 45 | + esac && \ |
| 46 | + wget "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.7%2B6/OpenJDK21U-jdk_${OS_ARCHITECTURE}_hotspot_21.0.7_6.tar.gz" && \ |
| 47 | + mv OpenJDK21U-jdk_${OS_ARCHITECTURE}_hotspot_21.0.7_6.tar.gz openjdk-21.0.7.tar.gz |
| 48 | +RUN tar -xzvf openjdk-21.0.7.tar.gz && \ |
| 49 | + mv jdk-21.0.7+6 jdk-21 && \ |
| 50 | + mv jdk-21 /usr/java/ |
| 51 | +ENV JAVA_HOME=/usr/java/jdk-21 |
| 52 | +ENV PATH="$PATH:$JAVA_HOME/bin" |
| 53 | +# Will load a custom configuration file for Micronaut |
| 54 | +ENV MICRONAUT_ENVIRONMENTS=local,override |
| 55 | +# Sets the path where you save plugins as Jar and is loaded during the startup process |
| 56 | +ENV KESTRA_PLUGINS_PATH="/workspaces/plugin-template/local/plugins" |
| 57 | +# -------------------------------------- |
| 58 | + |
| 59 | +# -------------------------------------- |
| 60 | +# SSH |
| 61 | +# -------------------------------------- |
| 62 | +RUN mkdir -p ~/.ssh |
| 63 | +RUN touch ~/.ssh/config |
| 64 | +RUN echo "Host github.com" >> ~/.ssh/config \ |
| 65 | + && echo " IdentityFile ~/.ssh/id_ed25519" >> ~/.ssh/config |
| 66 | +RUN touch ~/.ssh/id_ed25519 |
| 67 | +# -------------------------------------- |
0 commit comments