Skip to content

Commit

Permalink
Merge pull request #9 from ContainerCraft/lazyvim
Browse files Browse the repository at this point in the history
Lazyvim
  • Loading branch information
usrbinkat authored Oct 3, 2024
2 parents 15271e0 + 21a7841 commit 495efb6
Show file tree
Hide file tree
Showing 12 changed files with 311 additions and 52 deletions.
99 changes: 65 additions & 34 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,20 @@ jobs:
steps:
- name: Git Checkout
uses: actions/checkout@v4
id: git-checkout
id: dep-git-checkout

- name: Set up QEMU
id: dep-qemu
uses: docker/setup-qemu-action@v3
id: qemu-install

- name: Install Docker Buildx
id: dep-buildx
uses: docker/setup-buildx-action@v3
id: docker-buildx-install

- name: Login to GitHub Container Registry
id: login-ghcr
uses: docker/login-action@v3
id: docker-login-ghcr
with:
Expand All @@ -55,6 +58,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to Docker Hub Container Registry
id: login-dockerhub
uses: docker/login-action@v3
id: docker-login-dockerhub
with:
Expand All @@ -63,155 +67,182 @@ jobs:
password: ${{ secrets.DOCKERHUB_PASSWD }}

- name: repository_owner to lower case
id: namespace-to-lower
uses: Entepotenz/change-string-case-action-min-dependencies@v1
id: string-owner-to-lower
with:
string: ${{ github.repository_owner }}

- name: Transform repository name to lower case
id: repo-to-lower
uses: Entepotenz/change-string-case-action-min-dependencies@v1
id: string-repository-to-lower
with:
string: ${{ github.repository }}

- name: Build and Push Image devcontainer:slim
id: slim
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker
file: docker/slim/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:slim,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:slim,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:slim-node
id: slim-node
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
context: docker/slim-node
file: docker/slim-node/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:slim-node,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:slim-node,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:slim-python
id: slim-python
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
context: docker/slim-python
file: docker/slim-python/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:slim-python,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:slim-python,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:slim-golang
id: slim-golang
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
context: docker/slim-golang
file: docker/slim-golang/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:slim-go,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:slim-go,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:slim-dotnet
id: slim-dotnet
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
context: docker/slim-dotnet
file: docker/slim-dotnet/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:slim-dotnet,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:slim-dotnet,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:slim-all
id: slim-all
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker/slim-all
file: docker/slim-all/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:slim-all,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:slim-all,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:hugo
id: slim
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker/hugo
file: docker/hugo/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:hugo,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:hugo,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:base
id: base
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker/base
file: docker/base/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:base,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:base,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:dind
id: docker-in-docker
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker/docker-in-docker
file: docker/docker-in-docker/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:dind,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:dind,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:nvim
id: nvim
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker/neovim
file: docker/neovim/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:nvim,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:nvim,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:extra
id: extra
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker/extra
file: docker/extra/Dockerfile
platforms: linux/amd64,linux/arm64
tags: "docker.io/containercraft/konductor:latest,docker.io/containercraft/konductor:extra,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:extra,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:latest,ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:${{ github.sha }}"

- name: Build and Push Image devcontainer:code-server
id: code-server
uses: docker/build-push-action@v5
if: github.ref == 'refs/heads/main' || github.event_name == 'pull_request'
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
#cache-from: |
# type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:server-cache
#cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
cache-from: |
type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:server-cache
cache-to: type=registry,ref=ghcr.io/${{ steps.string-repository-to-lower.outputs.lowercase }}:cache,mode=max
context: docker/code-server
file: docker/code-server/Dockerfile
platforms: linux/amd64,linux/arm64
Expand Down
52 changes: 51 additions & 1 deletion docker/base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ENV DEVCONTAINER="base"

# Install Kubectl
# - https://kubernetes.io
# - github.com/kubernetes/kubernetes
#:sparkles: - github.com/kubernetes/kubernetes
# && export URL="https://storage.googleapis.com/kubernetes-release/release/${VERSION}/bin/linux/${ARCH}/${PKG}" \
RUN echo \
&& export NAME=kubectl \
Expand Down Expand Up @@ -132,3 +132,53 @@ RUN echo \
&& ${dir_clean} \
&& ${TEST} \
&& echo

##################################################################################
# Install kubectx CLI
# - https://github.com/ahmetb/kubectx
RUN echo \
&& export NAME=kubectx \
&& export TEST="${NAME} --version" \
&& export REPOSITORY="ahmetb/kubectx" \
&& export VERSION="$(${curl} https://api.github.com/repos/${REPOSITORY}/releases/latest | jq --raw-output .tag_name)" \
&& export ARCH=$(uname -m | awk '{ if ($1 == "x86_64") print "x86_64"; else if ($1 == "aarch64" || $1 == "arm64") print "arm64"; else print "unknown" }') \
&& export PKG="${NAME}_${VERSION}_linux_${ARCH}.tar.gz" \
&& export URL="https://github.com/${REPOSITORY}/releases/download/${VERSION}/${PKG}" \
&& echo "---------------------------------------------------------"\
&& echo "INFO[${NAME}] Installed:" \
&& echo "INFO[${NAME}] Command: ${NAME}" \
&& echo "INFO[${NAME}] Package: ${PKG}" \
&& echo "INFO[${NAME}] Latest Release: ${VERSION}" \
&& echo "INFO[${NAME}] Architecture: ${ARCH}" \
&& echo "INFO[${NAME}] Source: ${URL}" \
&& echo "---------------------------------------------------------"\
&& ${curl} -L ${URL} | sudo tar xzvf - --directory /tmp ${NAME} \
&& sudo ${INSTALL} /tmp/${NAME} ${BIN}/${NAME} \
&& ${dir_clean} \
&& ${TEST} \
&& echo

##################################################################################
# Install kubens CLI
# - https://github.com/ahmetb/kubectx
RUN echo \
&& export NAME=kubens \
&& export TEST="${NAME} --version" \
&& export REPOSITORY="ahmetb/kubectx" \
&& export VERSION="$(${curl} https://api.github.com/repos/${REPOSITORY}/releases/latest | jq --raw-output .tag_name)" \
&& export ARCH=$(uname -m | awk '{ if ($1 == "x86_64") print "x86_64"; else if ($1 == "aarch64" || $1 == "arm64") print "arm64"; else print "unknown" }') \
&& export PKG="${NAME}_${VERSION}_linux_${ARCH}.tar.gz" \
&& export URL="https://github.com/${REPOSITORY}/releases/download/${VERSION}/${PKG}" \
&& echo "---------------------------------------------------------"\
&& echo "INFO[${NAME}] Installed:" \
&& echo "INFO[${NAME}] Command: ${NAME}" \
&& echo "INFO[${NAME}] Package: ${PKG}" \
&& echo "INFO[${NAME}] Latest Release: ${VERSION}" \
&& echo "INFO[${NAME}] Architecture: ${ARCH}" \
&& echo "INFO[${NAME}] Source: ${URL}" \
&& echo "---------------------------------------------------------"\
&& ${curl} -L ${URL} | sudo tar xzvf - --directory /tmp ${NAME} \
&& sudo ${INSTALL} /tmp/${NAME} ${BIN}/${NAME} \
&& ${dir_clean} \
&& ${TEST} \
&& echo
2 changes: 1 addition & 1 deletion docker/extra/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# - docker build --progress plain --tag ghcr.io/containercraft/devcontainer:extra -f docker/extra/Dockerfile ./docker
# - docker run --rm -d --name devcontainer --hostname devcontainer --entrypoint bash ghcr.io/containercraft/devcontainer:extra
###############################################################################
FROM ghcr.io/containercraft/devcontainer:dind
FROM ghcr.io/containercraft/devcontainer:nvim
LABEL tag="extra"
ENV DEVCONTAINER="extra"

Expand Down
Loading

0 comments on commit 495efb6

Please sign in to comment.