diff --git a/.gitea/workflows/image-deploy.yaml b/.gitea/workflows/build-deploy-images.yaml similarity index 71% rename from .gitea/workflows/image-deploy.yaml rename to .gitea/workflows/build-deploy-images.yaml index 8bc8fc7..d6851ba 100644 --- a/.gitea/workflows/image-deploy.yaml +++ b/.gitea/workflows/build-deploy-images.yaml @@ -23,7 +23,7 @@ jobs: curl -fsSL https://git.limbosolutions.com/kb/gitea/raw/branch/main/cloud-scripts/setup-limbo-actions.sh | bash 2>&1 - - name: Build and push Image + - name: Build and push Image devcontainers/devops uses: ./.gitea/limbo_actions/buildkit-build-push with: tags: oci.limbosolutions.com/public/devcontainers/devops:latest @@ -34,7 +34,20 @@ jobs: dockerfile: ${{gitea.workspace}}/devops context: ${{gitea.workspace}}/devops - - name: Build and push Image + + - name: Build and push Image devcontainers/argo-workflows + uses: ./.gitea/limbo_actions/buildkit-build-push + with: + tags: oci.limbosolutions.com/public/devcontainers/argo-workflows:latest + registry_addr: ${{ vars.OCI_LIMBO_REGISTRY_ADDRESS }} + registry_username: ${{ secrets.OCI_LIMBO_REGISTRY_PUBLIC_USERNAME }} + registry_password: ${{ secrets.OCI_LIMBO_REGISTRY_PUBLIC_PASSWORD }} + buildkit_addr: ${{ vars.BUILDKIT_ADDRESS }} + dockerfile: ${{gitea.workspace}}/argo-workflows + context: ${{gitea.workspace}}/argo-workflows + + + - name: Build and push Image devcontainers/container-builder uses: ./.gitea/limbo_actions/buildkit-build-push with: tags: | diff --git a/argo-workflows/Dockerfile b/argo-workflows/Dockerfile new file mode 100644 index 0000000..2d6b7d4 --- /dev/null +++ b/argo-workflows/Dockerfile @@ -0,0 +1,73 @@ +FROM ubuntu:latest + +ENV DEBIAN_FRONTEND=noninteractive + +# Base packages +RUN apt-get update && apt-get install -y \ + nano \ + curl \ + wget \ + git \ + sudo \ + jq \ + ca-certificates \ + software-properties-common \ + iputils-ping \ + zsh \ + && rm -rf /var/lib/apt/lists/* + +# set user with zsh as default shell using default user ubuntu uid +RUN usermod -l code ubuntu && \ + groupmod -n code ubuntu && \ + usermod -d /home/code -m -s /usr/bin/zsh code + + +# Install Oh-My-Zsh for user +RUN su code -c "curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh | sh -s -- --unattended" + + +# ---zsh plugins --- +RUN su code -c "git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \ + /home/code/.oh-my-zsh/custom/plugins/fast-syntax-highlighting" + +RUN su code -c "git clone https://github.com/zsh-users/zsh-autosuggestions \ + /home/code/.oh-my-zsh/custom/plugins/zsh-autosuggestions" + + +# -- install chroma for zsh +RUN mkdir /tmp/chroma \ + && curl -s https://api.github.com/repos/alecthomas/chroma/releases/latest \ + | grep "browser_download_url.*linux-amd64.*tar.gz" \ + | cut -d '"' -f 4 \ + | wget -O /tmp/chroma/chroma.tar.gz -i - \ + && tar -xzf /tmp/chroma/chroma.tar.gz -C /tmp/chroma \ + && install -m 0755 /tmp/chroma/chroma /usr/local/bin/chroma \ + && rm -r /tmp/chroma + +# --- set zsh shell as default --- +RUN chsh -s /usr/bin/zsh code + +# --- copy assets --- +COPY ./assets/.zshrc /home/code + +# --- Install yq --- +RUN wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 \ + -O /usr/bin/yq && chmod +x /usr/bin/yq + +# --- Install kubectl --- +RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \ + && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \ + && rm kubectl + +#----- argo cli +ENV ARGO_CLI_VERSION=4.1.4 +RUN wget "https://github.com/argoproj/argo-workflows/releases/download/v${ARGO_CLI_VERSION}/argo-linux-amd64.gz" -O /tmp/argo-linux-amd64.gz && \ +cd /tmp && gunzip argo-linux-amd64.gz && \ +chmod +x argo-linux-amd64 && \ +mv argo-linux-amd64 /usr/local/bin/argo + +RUN mkdir /workspaces && chown code:code /workspaces -R +USER code +WORKDIR /workspaces + + diff --git a/argo-workflows/assets/.zshrc b/argo-workflows/assets/.zshrc new file mode 100644 index 0000000..84fb704 --- /dev/null +++ b/argo-workflows/assets/.zshrc @@ -0,0 +1,8 @@ +export ZSH="$HOME/.oh-my-zsh" +DISABLE_AUTO_UPDATE=true +DISABLE_UPDATE_PROMPT=true +ZSH_COLORIZE_TOOL=chroma +export FAST_HIGHLIGHT_CHROMA=1 +ZSH_THEME="gnzh" +plugins=(git timer web-search ssh colorize fast-syntax-highlighting) +source $ZSH/oh-my-zsh.sh