diff --git a/.github/workflows/epicmorg.advanced.cassandra.yml b/.github/workflows/epicmorg.advanced.cassandra.yml
new file mode 100644
index 000000000..cb4167d90
--- /dev/null
+++ b/.github/workflows/epicmorg.advanced.cassandra.yml
@@ -0,0 +1,44 @@
+name: EpicMorg Advanced Cassandra Image
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 02 * * 2,4,6'
+
+jobs:
+
+ build-images:
+ name: EpicMorg Advanced Cassandra Image
+ runs-on: [ ubuntu-24.04 ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Cassandra 3.11 Image:"
+ run: cd linux/advanced/cassandra/3.11 && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
diff --git a/.github/workflows/epicmorg.advanced.nextcloud.images.yml b/.github/workflows/epicmorg.advanced.nextcloud.images.yml
index b1b7ea72e..b5cc690a5 100644
--- a/.github/workflows/epicmorg.advanced.nextcloud.images.yml
+++ b/.github/workflows/epicmorg.advanced.nextcloud.images.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Advanced Nextcloud Images
+name: EpicMorg Advanced Nextcloud Images
on:
workflow_dispatch:
@@ -6,192 +6,40 @@ on:
- cron: '0 02 * * 2,4,6'
jobs:
-
- build-pure-images:
- name: EpicMorg Advanced Nextcloud Stock Images
- runs-on: [ ubuntu-24.04 ]
-
+ build-nextcloud-images:
+ name: Build Nextcloud ${{ matrix.version }} (${{ matrix.image_type }})
+ runs-on: ubuntu-24.04
+ strategy:
+ matrix:
+ version: [
+# '14', '15', '16', '17', '18', '19',
+# '20', '21', '22', '23', '24', '25', '26',
+ '27', '28', '29',
+ '30', '31', 'latest'
+ ]
steps:
- uses: actions/checkout@v4
- name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
- name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
- name: Check buildah
- run: |
- buildah --version
+ run: buildah --version
- name: Test Make
- run: make
+ run: make
- name: Install requirements.txt
- run: make pip
+ run: make pip
-# - name: "Build and Deploy Advanced Nextcloud 14 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/14 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 15 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/15 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 16 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/16 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 17 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/17 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 18 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/18 && pwd && make build && make deploy
-#
-# - name: Cleanup
-# run: make clean
-#
-# - name: "Build and Deploy Advanced Nextcloud 19 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/19 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 20 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/20 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 21 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/21 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 22 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/22 && pwd && make build && make deploy
-#
-# - name: Cleanup
-# run: make clean
-#
-# - name: "Build and Deploy Advanced Nextcloud 23 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/23 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 24 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/24 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 25 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/25 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 26 Stock Images:"
-# run: cd linux/advanced/nextcloud/pure/26 && pwd && make build && make deploy
+ - name: Build and Deploy Nextcloud ${{ matrix.version }} Stock
+ run: cd linux/advanced/nextcloud/pure/${{ matrix.version }} && pwd && make build && make deploy
- - name: "Build and Deploy Advanced Nextcloud 27 Stock Images:"
- run: cd linux/advanced/nextcloud/pure/27 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 28 Stock Images:"
- run: cd linux/advanced/nextcloud/pure/28 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 29 Stock Images:"
- run: cd linux/advanced/nextcloud/pure/29 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 30 Stock Images:"
- run: cd linux/advanced/nextcloud/pure/30 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 31 Stock Images:"
- run: cd linux/advanced/nextcloud/pure/31 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud Latest Stock Images:"
- run: cd linux/advanced/nextcloud/pure/latest && pwd && make build && make deploy
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- build-patched-images:
- name: Advanced Nextcloud Patched Images
- runs-on: [ ubuntu-24.04 ]
- needs: build-pure-images
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
-# - name: "Build and Deploy Advanced Nextcloud 14 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/14 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 15 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/15 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 16 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/16 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 17 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/17 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 18 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/18 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 19 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/19 && pwd && make build && make deploy
-#
-# - name: Cleanup
-# run: make clean
-#
-# - name: "Build and Deploy Advanced Nextcloud 20 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/20 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 21 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/21 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 22 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/22 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 23 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/23 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 24 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/24 && pwd && make build && make deploy
-#
-# - name: Cleanup
-# run: make clean
-#
-# - name: "Build and Deploy Advanced Nextcloud 25 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/25 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Advanced Nextcloud 26 Patched Images:"
-# run: cd linux/advanced/nextcloud/patched/26 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 27 Patched Images:"
- run: cd linux/advanced/nextcloud/patched/27 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 28 Patched Images:"
- run: cd linux/advanced/nextcloud/patched/28 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 29 Patched Images:"
- run: cd linux/advanced/nextcloud/patched/29 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 30 Patched Images:"
- run: cd linux/advanced/nextcloud/patched/30 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud 31 Patched Images:"
- run: cd linux/advanced/nextcloud/patched/31 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Nextcloud Latest Patched Images:"
- run: cd linux/advanced/nextcloud/patched/latest && pwd && make build && make deploy
-
-##################################################################################
+ - name: Build and Deploy Nextcloud ${{ matrix.version }} Patched
+ run: cd linux/advanced/nextcloud/patched/${{ matrix.version }} && pwd && make build && make deploy
- name: Cleanup
- run: make clean
+ run: make clean
\ No newline at end of file
diff --git a/.github/workflows/epicmorg.advanced.vscode.images.yml b/.github/workflows/epicmorg.advanced.vscode.images.yml
index 42d182dc5..121235e5b 100644
--- a/.github/workflows/epicmorg.advanced.vscode.images.yml
+++ b/.github/workflows/epicmorg.advanced.vscode.images.yml
@@ -8,7 +8,7 @@ on:
jobs:
build-images:
- name: Build EpicMorg Advanced Vscode Server Images
+ name: Build EpicMorg Advanced Vscode Server - Latest Image
runs-on: [ ubuntu-24.04 ]
steps:
@@ -38,6 +38,40 @@ jobs:
- name: "Build and Deploy Advanced Vscode Server Images:"
run: cd linux/advanced/vscode-server/latest && pwd && make build && make deploy
+ - name: "Build and Deploy Advanced Vscode Server CPP Images:"
+ run: cd linux/advanced/vscode-server/cpp && pwd && make build && make deploy
+
+##################################################################################
+
+ build-other-images:
+ name: Build EpicMorg Advanced Vscode Server - Other Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+##################################################################################
+
- name: "Build and Deploy Advanced Vscode Server AMXX 1.9 Images:"
run: cd linux/advanced/vscode-server/amxx/1.9 && pwd && make build && make deploy
@@ -64,9 +98,6 @@ jobs:
- name: "Build and Deploy Advanced Vscode Server NodeJS Images:"
run: cd linux/advanced/vscode-server/nodejs && pwd && make build && make deploy
- - name: "Build and Deploy Advanced Vscode Server CPP Images:"
- run: cd linux/advanced/vscode-server/cpp && pwd && make build && make deploy
-
- name: "Build and Deploy Advanced Vscode Server Docker Images:"
run: cd linux/advanced/vscode-server/docker && pwd && make build && make deploy
diff --git a/.github/workflows/epicmorg.advanced.zabbix.images.yml b/.github/workflows/epicmorg.advanced.zabbix.images.yml
index e2001bcfd..fd00f994e 100644
--- a/.github/workflows/epicmorg.advanced.zabbix.images.yml
+++ b/.github/workflows/epicmorg.advanced.zabbix.images.yml
@@ -63,585 +63,12 @@ jobs:
- name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
run: cd linux/advanced/zabbix/latest/web-pgsql && pwd && make build && make deploy
-##################################################################################
-
- build-30-images:
- name: Build EpicMorg Advanced Zabbix 3.0 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/3.0/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/3.0/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/3.0/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/3.0/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/3.0/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/3.0/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/3.0/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/3.0/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/3.0/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-40-images:
- name: Build EpicMorg Advanced Zabbix 4.0 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/4.0/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/4.0/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/4.0/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/4.0/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/4.0/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/4.0/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/4.0/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/4.0/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/4.0/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-50-images:
- name: Build EpicMorg Advanced Zabbix 5.0 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/5.0/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/5.0/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/5.0/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/5.0/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/5.0/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/5.0/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/5.0/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/5.0/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/5.0/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/5.0/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-52-images:
- name: Build EpicMorg Advanced Zabbix 5.2 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/5.2/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/5.2/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/5.2/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/5.2/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/5.2/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/5.2/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/5.2/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/5.2/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/5.2/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/5.2/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-54-images:
- name: Build EpicMorg Advanced Zabbix 5.4 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/5.4/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/5.4/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/5.4/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/5.4/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/5.4/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/5.4/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/5.4/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/5.4/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/5.4/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/5.4/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-60-images:
- name: Build EpicMorg Advanced Zabbix 6.0 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/6.0/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/6.0/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/6.0/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/6.0/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/6.0/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/6.0/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/6.0/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/6.0/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/6.0/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/6.0/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-62-images:
- name: Build EpicMorg Advanced Zabbix 6.2 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/6.2/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/6.2/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/6.2/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/6.2/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/6.2/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/6.2/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/6.2/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/6.2/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/6.2/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/6.2/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-64-images:
- name: Build EpicMorg Advanced Zabbix 6.4 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/6.4/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/6.4/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/6.4/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/6.4/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/6.4/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/6.4/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/6.4/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/6.4/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/6.4/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/6.4/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-70-images:
- name: Build EpicMorg Advanced Zabbix 7.0 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/7.0/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/7.0/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/7.0/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/7.0/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/7.0/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/7.0/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/7.0/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/7.0/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/7.0/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/7.0/web-pgsql && pwd && make build && make deploy
-
-##################################################################################
-
- build-72-images:
- name: Build EpicMorg Advanced Zabbix 7.2 Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Advanced Zabbix Agent Images:"
- run: cd linux/advanced/zabbix/7.2/agent && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
- run: cd linux/advanced/zabbix/7.2/agent2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
- run: cd linux/advanced/zabbix/7.2/java-gateway && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
- run: cd linux/advanced/zabbix/7.2/proxy-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
- run: cd linux/advanced/zabbix/7.2/proxy-sqlite3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
- run: cd linux/advanced/zabbix/7.2/server-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
- run: cd linux/advanced/zabbix/7.2/server-pgsql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
- run: cd linux/advanced/zabbix/7.2/snmptraps && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
- run: cd linux/advanced/zabbix/7.2/web-mysql && pwd && make build && make deploy
-
- - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
- run: cd linux/advanced/zabbix/7.2/web-pgsql && pwd && make build && make deploy
-
##################################################################################
build-trunk-images:
name: Build EpicMorg Advanced Zabbix trunk Images
runs-on: [ ubuntu-24.04 ]
+ needs: build-latest-images
steps:
- uses: actions/checkout@v4
@@ -695,7 +122,638 @@ jobs:
- name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
run: cd linux/advanced/zabbix/trunk/web-pgsql && pwd && make build && make deploy
+##################################################################################
+
+ build-72-images:
+ name: Build EpicMorg Advanced Zabbix 7.2 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-trunk-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/7.2/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/7.2/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/7.2/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/7.2/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/7.2/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/7.2/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/7.2/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/7.2/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/7.2/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/7.2/web-pgsql && pwd && make build && make deploy
+
##################################################################################
- name: Cleanup
run: make clean
+
+##################################################################################
+
+ build-70-images:
+ name: Build EpicMorg Advanced Zabbix 7.0 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-72-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/7.0/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/7.0/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/7.0/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/7.0/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/7.0/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/7.0/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/7.0/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/7.0/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/7.0/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/7.0/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-64-images:
+ name: Build EpicMorg Advanced Zabbix 6.4 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-70-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/6.4/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/6.4/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/6.4/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/6.4/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/6.4/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/6.4/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/6.4/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/6.4/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/6.4/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/6.4/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-62-images:
+ name: Build EpicMorg Advanced Zabbix 6.2 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-64-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/6.2/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/6.2/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/6.2/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/6.2/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/6.2/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/6.2/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/6.2/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/6.2/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/6.2/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/6.2/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-60-images:
+ name: Build EpicMorg Advanced Zabbix 6.0 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-62-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/6.0/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/6.0/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/6.0/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/6.0/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/6.0/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/6.0/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/6.0/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/6.0/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/6.0/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/6.0/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-54-images:
+ name: Build EpicMorg Advanced Zabbix 5.4 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-60-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/5.4/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/5.4/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/5.4/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/5.4/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/5.4/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/5.4/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/5.4/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/5.4/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/5.4/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/5.4/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-52-images:
+ name: Build EpicMorg Advanced Zabbix 5.2 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-54-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/5.2/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/5.2/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/5.2/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/5.2/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/5.2/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/5.2/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/5.2/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/5.2/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/5.2/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/5.2/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-50-images:
+ name: Build EpicMorg Advanced Zabbix 5.0 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-52-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/5.0/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Agent2 Images:"
+ run: cd linux/advanced/zabbix/5.0/agent2 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/5.0/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/5.0/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/5.0/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/5.0/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/5.0/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/5.0/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/5.0/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/5.0/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-40-images:
+ name: Build EpicMorg Advanced Zabbix 4.0 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-50-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/4.0/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/4.0/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/4.0/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/4.0/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/4.0/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/4.0/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/4.0/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/4.0/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/4.0/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-30-images:
+ name: Build EpicMorg Advanced Zabbix 3.0 Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-40-images
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Advanced Zabbix Agent Images:"
+ run: cd linux/advanced/zabbix/3.0/agent && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Java Gateway Images:"
+ run: cd linux/advanced/zabbix/3.0/java-gateway && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Mysql Images:"
+ run: cd linux/advanced/zabbix/3.0/proxy-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Proxy Sqlite3 Images:"
+ run: cd linux/advanced/zabbix/3.0/proxy-sqlite3 && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Mysql Images:"
+ run: cd linux/advanced/zabbix/3.0/server-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Server Pgsql Images:"
+ run: cd linux/advanced/zabbix/3.0/server-pgsql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Snmptraps Images:"
+ run: cd linux/advanced/zabbix/3.0/snmptraps && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Mysql Images:"
+ run: cd linux/advanced/zabbix/3.0/web-mysql && pwd && make build && make deploy
+
+ - name: "Build and Deploy Advanced Zabbix Web Pgsql Images:"
+ run: cd linux/advanced/zabbix/3.0/web-pgsql && pwd && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
diff --git a/.github/workflows/epicmorg.base.images.debian.10.yml b/.github/workflows/epicmorg.base.images.debian.10.yml
index 8b7adfff7..aede101b7 100644
--- a/.github/workflows/epicmorg.base.images.debian.10.yml
+++ b/.github/workflows/epicmorg.base.images.debian.10.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 10 Images
+name: EpicMorg Base - Debian 10 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.11.yml b/.github/workflows/epicmorg.base.images.debian.11.yml
index 6dc54dad3..567944fe3 100644
--- a/.github/workflows/epicmorg.base.images.debian.11.yml
+++ b/.github/workflows/epicmorg.base.images.debian.11.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 11 Images
+name: EpicMorg Base - Debian 11 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.12.yml b/.github/workflows/epicmorg.base.images.debian.12.yml
index 9553c6ab1..b5990b6a2 100644
--- a/.github/workflows/epicmorg.base.images.debian.12.yml
+++ b/.github/workflows/epicmorg.base.images.debian.12.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 12 Images
+name: EpicMorg Base - Debian 12 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.13.yml b/.github/workflows/epicmorg.base.images.debian.13.yml
index 699c44591..ab35eabf8 100644
--- a/.github/workflows/epicmorg.base.images.debian.13.yml
+++ b/.github/workflows/epicmorg.base.images.debian.13.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 13 Images
+name: EpicMorg Base - Debian 13 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.6.yml b/.github/workflows/epicmorg.base.images.debian.6.yml
index 627df1b74..bb366e036 100644
--- a/.github/workflows/epicmorg.base.images.debian.6.yml
+++ b/.github/workflows/epicmorg.base.images.debian.6.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 6 Images
+name: EpicMorg Base - Debian 6 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.7.yml b/.github/workflows/epicmorg.base.images.debian.7.yml
index af6164110..db18963af 100644
--- a/.github/workflows/epicmorg.base.images.debian.7.yml
+++ b/.github/workflows/epicmorg.base.images.debian.7.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 7 Images
+name: EpicMorg Base - Debian 7 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.8.yml b/.github/workflows/epicmorg.base.images.debian.8.yml
index bf4ce0f7e..73385f278 100644
--- a/.github/workflows/epicmorg.base.images.debian.8.yml
+++ b/.github/workflows/epicmorg.base.images.debian.8.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 8 Images
+name: EpicMorg Base - Debian 8 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.9.yml b/.github/workflows/epicmorg.base.images.debian.9.yml
index bf2d782a2..50f2edd9c 100644
--- a/.github/workflows/epicmorg.base.images.debian.9.yml
+++ b/.github/workflows/epicmorg.base.images.debian.9.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian 9 Images
+name: EpicMorg Base - Debian 9 Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.debian.sid.yml b/.github/workflows/epicmorg.base.images.debian.sid.yml
index e1315038b..b95de8c67 100644
--- a/.github/workflows/epicmorg.base.images.debian.sid.yml
+++ b/.github/workflows/epicmorg.base.images.debian.sid.yml
@@ -1,4 +1,4 @@
-name: EpicMorg Debian SID Images
+name: EpicMorg Base - Debian SID Images
on:
workflow_dispatch:
diff --git a/.github/workflows/epicmorg.base.images.giltab.runners.yml b/.github/workflows/epicmorg.base.images.giltab.runners.yml
deleted file mode 100644
index 4b974a6e2..000000000
--- a/.github/workflows/epicmorg.base.images.giltab.runners.yml
+++ /dev/null
@@ -1,265 +0,0 @@
-name: EpicMorg EcoSystem Gitlab Runner Images
-
-on:
- workflow_dispatch:
- schedule:
- - cron: '4 5 * * 2,4,6'
-
-jobs:
-
- build-glr-main-images:
- name: Build EpicMorg Gitlab Runner Main Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Gitlab Runner minimal Image:"
- run: cd linux/ecosystem/gitlab/runner/minimal && pwd && make build && make deploy
-
-
- - name: "Build and Deploy Gitlab Runner Main Image:"
- run: cd linux/ecosystem/gitlab/runner/latest && pwd && make build && make deploy
-
-###################################################################################
-#
-# build-glr-other-images:
-# name: Build EpicMorg Gitlab Runner Oter Images
-# runs-on: [ ubuntu-24.04 ]
-# needs: build-glr-main-images
-#
-# steps:
-# - uses: actions/checkout@v4
-# - name: Log into registry
-# run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-#
-# - name: Check buildah
-# run: |
-# buildah --version
-# buildah info
-#
-# - name: Test Make
-# run: make
-#
- - name: Install requirements.txt
- run: make pip
-#
-# - name: "Build and Deploy Gitlab Runner amxX 1.9 SDK Image:"
-# run: cd linux/ecosystem/gitlab/runner/amxx-sdk/1.9 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Gitlab Runner amxX 1.10 SDK Image:"
-# run: cd linux/ecosystem/gitlab/runner/amxx-sdk/1.10 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy Gitlab Runner Android SDK Image (jdk8):"
-# run: cd linux/ecosystem/gitlab/runner/android-sdk/jdk8 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy Gitlab Runner Android SDK Image (jdk11):"
-# run: cd linux/ecosystem/gitlab/runner/android-sdk/jdk11 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy Gitlab Runner Android SDK Image (jdk17):"
-# run: cd linux/ecosystem/gitlab/runner/android-sdk/jdk17 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy Gitlab Runner Atlassian SDK Image:"
-# run: cd linux/ecosystem/gitlab/runner/atlassian-sdk && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy Gitlab Runner dotNet SDK Image:"
-# run: cd linux/ecosystem/gitlab/runner/dotnet-sdk && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Gitlab Runner node0.12 Image:"
-# run: cd linux/ecosystem/gitlab/runner/node0.12 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy Gitlab Runner node4 Image:"
-# run: cd linux/ecosystem/gitlab/runner/node4 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner node5 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node5 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node6 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node6 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node7 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node7 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner node8 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node8 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node9 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node9 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node10 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node10 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner node11 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node11 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node12 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node12 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node13 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node13 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner node14 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node14 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node15 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node15 && pwd && make build && make deploy
-##
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner node16 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node16 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node17 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node17 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node18 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node18 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner node19 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node19 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node20 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node20 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node21 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node21 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner node22 Image:"
-## run: cd linux/ecosystem/gitlab/runner/node22 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner php7.2 Image:"
-## run: cd linux/ecosystem/gitlab/runner/php7.2 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner php7.3 Image:"
-## run: cd linux/ecosystem/gitlab/runner/php7.3 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner php7.4 Image:"
-## run: cd linux/ecosystem/gitlab/runner/php7.4 && pwd && make build && make deploy
-##
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy Gitlab Runner php8.0 Image:"
-## run: cd linux/ecosystem/gitlab/runner/php8.0 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner php8.1 Image:"
-## run: cd linux/ecosystem/gitlab/runner/php8.1 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner php8.2 Image:"
-## run: cd linux/ecosystem/gitlab/runner/php8.2 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner php8.3 Image:"
-## run: cd linux/ecosystem/gitlab/runner/php8.3 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy Gitlab Runner Steam SDK Image:"
-## run: cd linux/ecosystem/gitlab/runner/steam-sdk && pwd && make build && make deploy
-##
-## ##################################################################################
-#
\ No newline at end of file
diff --git a/.github/workflows/epicmorg.base.images.github.runners.yml b/.github/workflows/epicmorg.base.images.github.runners.yml
deleted file mode 100644
index 251d496b2..000000000
--- a/.github/workflows/epicmorg.base.images.github.runners.yml
+++ /dev/null
@@ -1,264 +0,0 @@
-name: EpicMorg EcoSystem Github Runner Images
-
-on:
- workflow_dispatch:
- schedule:
- - cron: '4 5 * * 2,4,6'
-
-jobs:
-
- build-glr-main-images:
- name: Build EpicMorg GitHub Runner Main Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy GitHub Runner Minimal Image:"
- run: cd linux/ecosystem/github/runner/minimal && pwd && make build && make deploy
-
- - name: "Build and Deploy GitHub Runner Main Image:"
- run: cd linux/ecosystem/github/runner/latest && pwd && make build && make deploy
-
-###################################################################################
-#
-# build-glr-other-images:
-# name: Build EpicMorg GitHub Runner Oter Images
-# runs-on: [ ubuntu-24.04 ]
-# needs: build-glr-main-images
-#
-# steps:
-# - uses: actions/checkout@v4
-# - name: Log into registry
-# run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-#
-# - name: Check buildah
-# run: |
-# buildah --version
-# buildah info
-#
-# - name: Test Make
-# run: make
-#
- - name: Install requirements.txt
- run: make pip
-#
-# - name: "Build and Deploy GitHub Runner amxX 1.9 SDK Image:"
-# run: cd linux/ecosystem/github/runner/amxx-sdk/1.9 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy GitHub Runner amxX 1.10 SDK Image:"
-# run: cd linux/ecosystem/github/runner/amxx-sdk/1.10 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy GitHub Runner Android SDK Image (jdk8):"
-# run: cd linux/ecosystem/github/runner/android-sdk/jdk8 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy GitHub Runner Android SDK Image (jdk11):"
-# run: cd linux/ecosystem/github/runner/android-sdk/jdk11 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy GitHub Runner Android SDK Image (jdk17):"
-# run: cd linux/ecosystem/github/runner/android-sdk/jdk17 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy GitHub Runner Atlassian SDK Image:"
-# run: cd linux/ecosystem/github/runner/atlassian-sdk && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-#
-# - name: "Build and Deploy GitHub Runner dotNet SDK Image:"
-# run: cd linux/ecosystem/github/runner/dotnet-sdk && pwd && make build && make deploy
-#
-# - name: "Build and Deploy GitHub Runner node0.12 Image:"
-# run: cd linux/ecosystem/github/runner/node0.12 && pwd && make build && make deploy
-#
-# - name: "Build and Deploy GitHub Runner node4 Image:"
-# run: cd linux/ecosystem/github/runner/node4 && pwd && make build && make deploy
-#
-###################################################################################
-#
-# - name: Cleanup
-# run: make clean
-#
-###################################################################################
-##
-## - name: "Build and Deploy GitHub Runner node5 Image:"
-## run: cd linux/ecosystem/github/runner/node5 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node6 Image:"
-## run: cd linux/ecosystem/github/runner/node6 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node7 Image:"
-## run: cd linux/ecosystem/github/runner/node7 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy GitHub Runner node8 Image:"
-## run: cd linux/ecosystem/github/runner/node8 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node9 Image:"
-## run: cd linux/ecosystem/github/runner/node9 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node10 Image:"
-## run: cd linux/ecosystem/github/runner/node10 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy GitHub Runner node11 Image:"
-## run: cd linux/ecosystem/github/runner/node11 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node12 Image:"
-## run: cd linux/ecosystem/github/runner/node12 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node13 Image:"
-## run: cd linux/ecosystem/github/runner/node13 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy GitHub Runner node14 Image:"
-## run: cd linux/ecosystem/github/runner/node14 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node15 Image:"
-## run: cd linux/ecosystem/github/runner/node15 && pwd && make build && make deploy
-##
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy GitHub Runner node16 Image:"
-## run: cd linux/ecosystem/github/runner/node16 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node17 Image:"
-## run: cd linux/ecosystem/github/runner/node17 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node18 Image:"
-## run: cd linux/ecosystem/github/runner/node18 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy GitHub Runner node19 Image:"
-## run: cd linux/ecosystem/github/runner/node19 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node20 Image:"
-## run: cd linux/ecosystem/github/runner/node20 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node21 Image:"
-## run: cd linux/ecosystem/github/runner/node21 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner node22 Image:"
-## run: cd linux/ecosystem/github/runner/node22 && pwd && make build && make deploy
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy GitHub Runner php7.2 Image:"
-## run: cd linux/ecosystem/github/runner/php7.2 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner php7.3 Image:"
-## run: cd linux/ecosystem/github/runner/php7.3 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner php7.4 Image:"
-## run: cd linux/ecosystem/github/runner/php7.4 && pwd && make build && make deploy
-##
-##
-## ##################################################################################
-##
-## - name: Cleanup
-## run: make clean
-##
-## ##################################################################################
-##
-## - name: "Build and Deploy GitHub Runner php8.0 Image:"
-## run: cd linux/ecosystem/github/runner/php8.0 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner php8.1 Image:"
-## run: cd linux/ecosystem/github/runner/php8.1 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner php8.2 Image:"
-## run: cd linux/ecosystem/github/runner/php8.2 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner php8.3 Image:"
-## run: cd linux/ecosystem/github/runner/php8.3 && pwd && make build && make deploy
-##
-## - name: "Build and Deploy GitHub Runner Steam SDK Image:"
-## run: cd linux/ecosystem/github/runner/steam-sdk && pwd && make build && make deploy
-##
-## ##################################################################################
-#
\ No newline at end of file
diff --git a/.github/workflows/epicmorg.base.images.perforce.yml b/.github/workflows/epicmorg.base.images.perforce.yml
deleted file mode 100644
index 39f222b7b..000000000
--- a/.github/workflows/epicmorg.base.images.perforce.yml
+++ /dev/null
@@ -1,207 +0,0 @@
-name: EpicMorg EcoSystem Perfocre Images
-
-on:
- workflow_dispatch:
- schedule:
- - cron: '4 4 * * 1,3,5'
-
-jobs:
-
- build-p4-images:
- name: Build EpicMorg Perfocre Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Perfocre r16.2 Image:"
- run: cd linux/ecosystem/perforce/base/r16.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r17.1 Image:"
- run: cd linux/ecosystem/perforce/base/r17.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r17.2 Image:"
- run: cd linux/ecosystem/perforce/base/r17.2 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Perfocre r18.1 Image:"
- run: cd linux/ecosystem/perforce/base/r18.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r18.2 Image:"
- run: cd linux/ecosystem/perforce/base/r18.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r19.1 Image:"
- run: cd linux/ecosystem/perforce/base/r19.1 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Perfocre r19.2 Image:"
- run: cd linux/ecosystem/perforce/base/r19.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r20.1 Image:"
- run: cd linux/ecosystem/perforce/base/r20.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r20.2 Image:"
- run: cd linux/ecosystem/perforce/base/r20.2 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Perfocre r21.1 Image:"
- run: cd linux/ecosystem/perforce/base/r21.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r21.2 Image:"
- run: cd linux/ecosystem/perforce/base/r21.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r22.1 Image:"
- run: cd linux/ecosystem/perforce/base/r22.1 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Perfocre r23.1 Image:"
- run: cd linux/ecosystem/perforce/base/r23.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r23.2 Image:"
- run: cd linux/ecosystem/perforce/base/r23.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre r24.2 Image:"
- run: cd linux/ecosystem/perforce/base/r24.2 && pwd && make build && make deploy
-
-##################################################################################
-
- build-p4p-images:
- name: Build EpicMorg Perfocre Proxy Images
- runs-on: [ ubuntu-24.04 ]
- needs: build-p4-images
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Perfocre Proxy r16.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r16.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r17.1 Image:"
- run: cd linux/ecosystem/perforce/p4p/r17.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r17.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r17.2 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Perfocre Proxy r18.1 Image:"
- run: cd linux/ecosystem/perforce/p4p/r18.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r18.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r18.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r19.1 Image:"
- run: cd linux/ecosystem/perforce/p4p/r19.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r19.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r19.2 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Perfocre Proxy r20.1 Image:"
- run: cd linux/ecosystem/perforce/p4p/r20.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r20.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r20.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r21.1 Image:"
- run: cd linux/ecosystem/perforce/p4p/r21.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r21.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r21.2 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Perfocre Proxy r22.1 Image:"
- run: cd linux/ecosystem/perforce/p4p/r22.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r23.1 Image:"
- run: cd linux/ecosystem/perforce/p4p/r23.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r23.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r23.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Perfocre Proxy r24.2 Image:"
- run: cd linux/ecosystem/perforce/p4p/r24.2 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
diff --git a/.github/workflows/epicmorg.base.images.postgresql.yml b/.github/workflows/epicmorg.base.images.postgresql.yml
deleted file mode 100644
index 0ce6db726..000000000
--- a/.github/workflows/epicmorg.base.images.postgresql.yml
+++ /dev/null
@@ -1,139 +0,0 @@
-name: EpicMorg EcoSystem PostgreSQL Images
-
-on:
- workflow_dispatch:
- schedule:
- - cron: '5 5 * * 1,3,5'
-
-jobs:
-
- build-pgsql-images:
- name: Build EpicMorg PostgreSQL Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy PostgreSQL 8.2 Image:"
- run: cd linux/ecosystem/postgres/8.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 8.3 Image:"
- run: cd linux/ecosystem/postgres/8.3 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 8.4 Image:"
- run: cd linux/ecosystem/postgres/8.4 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy PostgreSQL 9.0 Image:"
- run: cd linux/ecosystem/postgres/9.0 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 9.1 Image:"
- run: cd linux/ecosystem/postgres/9.1 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy PostgreSQL 9.2 Image:"
- run: cd linux/ecosystem/postgres/9.2 && pwd && make build && make deploy
-
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy PostgreSQL 9.3 Image:"
- run: cd linux/ecosystem/postgres/9.3 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 9.4 Image:"
- run: cd linux/ecosystem/postgres/9.4 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 9.5 Image:"
- run: cd linux/ecosystem/postgres/9.5 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy PostgreSQL 9.6 Image:"
- run: cd linux/ecosystem/postgres/9.6 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 10 Image:"
- run: cd linux/ecosystem/postgres/10 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy PostgreSQL 11 Image:"
- run: cd linux/ecosystem/postgres/11 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 12 Image:"
- run: cd linux/ecosystem/postgres/12 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 13 Image:"
- run: cd linux/ecosystem/postgres/13 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy PostgreSQL 14 Image:"
- run: cd linux/ecosystem/postgres/14 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 15 Image:"
- run: cd linux/ecosystem/postgres/15 && pwd && make build && make deploy
-
- - name: "Build and Deploy PostgreSQL 16 Image:"
- run: cd linux/ecosystem/postgres/16 && pwd && make build && make deploy
-
-# - name: "Build and Deploy PostgreSQL 17 Image:"
-# run: cd linux/ecosystem/postgres/17 && pwd && make build && make deploy
-
-# - name: "Build and Deploy PostgreSQL 18 Image:"
-# run: cd linux/ecosystem/postgres/18 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
diff --git a/.github/workflows/epicmorg.base.images.teamcity.agents.yml b/.github/workflows/epicmorg.base.images.teamcity.agents.yml
deleted file mode 100644
index 5c352a97d..000000000
--- a/.github/workflows/epicmorg.base.images.teamcity.agents.yml
+++ /dev/null
@@ -1,234 +0,0 @@
-name: EpicMorg EcoSystem TeamCity Agents Images
-
-on:
- workflow_dispatch:
- schedule:
- - cron: '4 4 * * 2,4,6'
-
-jobs:
-
- build-tca-main-images:
- name: Build EpicMorg TeamCity Agent Main Images
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: "Build and Deploy TeamCity Agent Minimal Image (jdk21):"
- run: cd linux/ecosystem/teamcity/agent/minimal && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent Main Image (jdk21):"
- run: cd linux/ecosystem/teamcity/agent/latest && pwd && make build && make deploy
-
-##################################################################################
-
- build-tca-other-images:
- name: Build EpicMorg TeamCity Agent Oter Images
- runs-on: [ ubuntu-24.04 ]
- needs: build-tca-main-images
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
-
-
- - name: "Build and Deploy TeamCity Agent amxX 1.9 SDK Image:"
- run: cd linux/ecosystem/teamcity/agent/amxx-sdk/1.9 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent amxX 1.10 SDK Image:"
- run: cd linux/ecosystem/teamcity/agent/amxx-sdk/1.10 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy TeamCity Agent Android SDK Image:"
- run: cd linux/ecosystem/teamcity/agent/android-sdk && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy TeamCity Agent Atlassian SDK Image:"
- run: cd linux/ecosystem/teamcity/agent/atlassian-sdk && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-#################################################################################
-
- - name: "Build and Deploy TeamCity Agent node0.12 Image:"
- run: cd linux/ecosystem/teamcity/agent/node0.12 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node4 Image:"
- run: cd linux/ecosystem/teamcity/agent/node4 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node5 Image:"
- run: cd linux/ecosystem/teamcity/agent/node5 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node6 Image:"
- run: cd linux/ecosystem/teamcity/agent/node6 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy TeamCity Agent node7 Image:"
- run: cd linux/ecosystem/teamcity/agent/node7 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node8 Image:"
- run: cd linux/ecosystem/teamcity/agent/node8 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node9 Image:"
- run: cd linux/ecosystem/teamcity/agent/node9 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node10 Image:"
- run: cd linux/ecosystem/teamcity/agent/node10 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy TeamCity Agent node11 Image:"
- run: cd linux/ecosystem/teamcity/agent/node11 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node12 Image:"
- run: cd linux/ecosystem/teamcity/agent/node12 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node13 Image:"
- run: cd linux/ecosystem/teamcity/agent/node13 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node14 Image:"
- run: cd linux/ecosystem/teamcity/agent/node14 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy TeamCity Agent node15 Image:"
- run: cd linux/ecosystem/teamcity/agent/node15 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node16 Image:"
- run: cd linux/ecosystem/teamcity/agent/node16 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node17 Image:"
- run: cd linux/ecosystem/teamcity/agent/node17 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node18 Image:"
- run: cd linux/ecosystem/teamcity/agent/node18 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy TeamCity Agent node19 Image:"
- run: cd linux/ecosystem/teamcity/agent/node19 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node20 Image:"
- run: cd linux/ecosystem/teamcity/agent/node20 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node21 Image:"
- run: cd linux/ecosystem/teamcity/agent/node21 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node22 Image:"
- run: cd linux/ecosystem/teamcity/agent/node22 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent node23 Image:"
- run: cd linux/ecosystem/teamcity/agent/node23 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy TeamCity Agent php5.6 Image:"
- run: cd linux/ecosystem/teamcity/agent/php56 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php7.0 Image:"
- run: cd linux/ecosystem/teamcity/agent/php70 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php7.1 Image:"
- run: cd linux/ecosystem/teamcity/agent/php71 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php7.2 Image:"
- run: cd linux/ecosystem/teamcity/agent/php72 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php7.3 Image:"
- run: cd linux/ecosystem/teamcity/agent/php73 && pwd && make build && make deploy
-
- - name: Cleanup
- run: make clean
-
- - name: "Build and Deploy TeamCity Agent php7.4 Image:"
- run: cd linux/ecosystem/teamcity/agent/php74 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php8.0 Image:"
- run: cd linux/ecosystem/teamcity/agent/php80 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php8.1 Image:"
- run: cd linux/ecosystem/teamcity/agent/php81 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php8.2 Image:"
- run: cd linux/ecosystem/teamcity/agent/php82 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php8.3 Image:"
- run: cd linux/ecosystem/teamcity/agent/php83 && pwd && make build && make deploy
-
- - name: "Build and Deploy TeamCity Agent php8.4 Image:"
- run: cd linux/ecosystem/teamcity/agent/php84 && pwd && make build && make deploy
-
-##################################################################################
diff --git a/.github/workflows/epicmorg.base.images.testrail.yml b/.github/workflows/epicmorg.base.images.testrail.yml
deleted file mode 100644
index 50661172a..000000000
--- a/.github/workflows/epicmorg.base.images.testrail.yml
+++ /dev/null
@@ -1,120 +0,0 @@
-name: EpicMorg EcoSystem Testrail Images
-
-on:
- workflow_dispatch:
- schedule:
- - cron: '4 4 * * 1,3,5'
-
-jobs:
-
- build-testrail-images:
- name: Build EpicMorg Testrail Images
- runs-on: [ ubuntu-24.04 ]
-# needs: build-php-images
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Cassandra 3.11 Image:"
- run: cd linux/advanced/cassandra/3.11 && pwd && make build && make deploy
-
-##################################################################################
-
- build-testrail-702-images:
- name: Build EpicMorg Testrail 7.0.2.1016 Images
- runs-on: [ ubuntu-24.04 ]
-# needs: build-php-images
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Testrail 7.0.2.1016 Image:"
- run: cd linux/ecosystem/testrail/7.0.2.1016/main && pwd && make build && make deploy
-
- - name: "Build and Deploy Testrail 7.0.2.1016 + AD Image:"
- run: cd linux/ecosystem/testrail/7.0.2.1016/ad && pwd && make build && make deploy
-
- - name: "Build and Deploy Testrail 7.0.2.1016 + LDAP Image:"
- run: cd linux/ecosystem/testrail/7.0.2.1016/ldap && pwd && make build && make deploy
-
-##################################################################################
-
- build-testrail-741-images:
- name: Build EpicMorg Testrail 7.4.1.8092 Images
- runs-on: [ ubuntu-24.04 ]
-# needs: build-php-images
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: "Build and Deploy Testrail 7.4.1.8092 Image:"
- run: cd linux/ecosystem/testrail/7.4.1.8092/main && pwd && make build && make deploy
-
- - name: "Build and Deploy Testrail 7.4.1.8092 + AD Image:"
- run: cd linux/ecosystem/testrail/7.4.1.8092/ad && pwd && make build && make deploy
-
- - name: "Build and Deploy Testrail 7.4.1.8092 + LDAP Image:"
- run: cd linux/ecosystem/testrail/7.4.1.8092/ldap && pwd && make build && make deploy
-
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
diff --git a/.github/workflows/epicmorg.ecosysctem.images.apache2.yml b/.github/workflows/epicmorg.ecosysctem.images.apache2.yml
new file mode 100644
index 000000000..4c9e8d9fc
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.apache2.yml
@@ -0,0 +1,42 @@
+name: EpicMorg EcoSystem Apache2 Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '2 2 * * 1,3,5'
+
+jobs:
+ build-apache2-images:
+ name: Build Apache2 + PHP ${{ matrix.version }}
+ runs-on: ubuntu-24.04
+ strategy:
+ matrix:
+ version: [
+ '5.6',
+ '7.0', '7.1', '7.2', '7.3', '7.4',
+ '8.0', '8.1', '8.2', '8.3', '8.4'
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Apache2 + PHP ${{ matrix.version }}
+ run: cd linux/ecosystem/apache2/php${{ matrix.version }} && pwd && make build && make deploy
+
+ - name: Conditional Cleanup
+ run: make clean
diff --git a/.github/workflows/epicmorg.ecosysctem.images.giltab.runners.yml b/.github/workflows/epicmorg.ecosysctem.images.giltab.runners.yml
new file mode 100644
index 000000000..31e990090
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.giltab.runners.yml
@@ -0,0 +1,110 @@
+name: EpicMorg EcoSystem Gitlab Runner Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '4 4 * * 2,4,6'
+
+jobs:
+ build-main-runners:
+ name: Build Main Gitlab Runners
+ runs-on: ubuntu-24.04
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Minimal Gitlab Runner
+ run: cd linux/ecosystem/gitlab/runner/minimal && pwd && make build && make deploy
+
+ - name: Build and Deploy Main Gitlab Runner
+ run: cd linux/ecosystem/gitlab/runner/latest && pwd && make build && make deploy
+
+ build-additional-runners:
+ name: Build Additional Gitlab Runner
+ runs-on: ubuntu-24.04
+ needs: build-main-runners
+ strategy:
+ matrix:
+ agent_type: [
+ # AMXX SDK
+ {type: 'amxx-sdk', version: '1.9', path: 'amxx-sdk/1.9'},
+ {type: 'amxx-sdk', version: '1.10', path: 'amxx-sdk/1.10'},
+
+ # Android SDK
+ {type: 'android-sdk', version: 'latest', path: 'android-sdk'},
+
+ # Atlassian SDK
+ {type: 'atlassian-sdk', version: 'latest', path: 'atlassian-sdk'},
+
+ # Node.js versions
+ {type: 'node', version: '0.12', path: 'node0.12'},
+ {type: 'node', version: '4', path: 'node4'},
+ {type: 'node', version: '5', path: 'node5'},
+ {type: 'node', version: '6', path: 'node6'},
+ {type: 'node', version: '7', path: 'node7'},
+ {type: 'node', version: '8', path: 'node8'},
+ {type: 'node', version: '9', path: 'node9'},
+ {type: 'node', version: '10', path: 'node10'},
+ {type: 'node', version: '11', path: 'node11'},
+ {type: 'node', version: '12', path: 'node12'},
+ {type: 'node', version: '13', path: 'node13'},
+ {type: 'node', version: '14', path: 'node14'},
+ {type: 'node', version: '15', path: 'node15'},
+ {type: 'node', version: '16', path: 'node16'},
+ {type: 'node', version: '17', path: 'node17'},
+ {type: 'node', version: '18', path: 'node18'},
+ {type: 'node', version: '19', path: 'node19'},
+ {type: 'node', version: '20', path: 'node20'},
+ {type: 'node', version: '21', path: 'node21'},
+ {type: 'node', version: '22', path: 'node22'},
+ {type: 'node', version: '23', path: 'node23'},
+
+ # PHP versions
+ {type: 'php', version: '5.6', path: 'php56'},
+ {type: 'php', version: '7.0', path: 'php70'},
+ {type: 'php', version: '7.1', path: 'php71'},
+ {type: 'php', version: '7.2', path: 'php72'},
+ {type: 'php', version: '7.3', path: 'php73'},
+ {type: 'php', version: '7.4', path: 'php74'},
+ {type: 'php', version: '8.0', path: 'php80'},
+ {type: 'php', version: '8.1', path: 'php81'},
+ {type: 'php', version: '8.2', path: 'php82'},
+ {type: 'php', version: '8.3', path: 'php83'},
+ {type: 'php', version: '8.4', path: 'php84'}
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Gitlab Runner ${{ matrix.agent_type.type }} ${{ matrix.agent_type.version }}
+ run: cd linux/ecosystem/gitlab/runner/${{ matrix.agent_type.path }} && pwd && make build && make deploy
+
+ - name: Cleanup
+ run: make clean
diff --git a/.github/workflows/epicmorg.ecosysctem.images.github.runners.yml b/.github/workflows/epicmorg.ecosysctem.images.github.runners.yml
new file mode 100644
index 000000000..fb982a16e
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.github.runners.yml
@@ -0,0 +1,110 @@
+name: EpicMorg EcoSystem Github Runner Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '4 5 * * 2,4,6'
+
+jobs:
+ build-main-runners:
+ name: Build Main Github Runners
+ runs-on: ubuntu-24.04
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Minimal Github Runner
+ run: cd linux/ecosystem/github/runner/minimal && pwd && make build && make deploy
+
+ - name: Build and Deploy Main Github Runner
+ run: cd linux/ecosystem/github/runner/latest && pwd && make build && make deploy
+
+ build-additional-runners:
+ name: Build Additional Github Runner
+ runs-on: ubuntu-24.04
+ needs: build-main-runners
+ strategy:
+ matrix:
+ agent_type: [
+ # AMXX SDK
+ {type: 'amxx-sdk', version: '1.9', path: 'amxx-sdk/1.9'},
+ {type: 'amxx-sdk', version: '1.10', path: 'amxx-sdk/1.10'},
+
+ # Android SDK
+ {type: 'android-sdk', version: 'latest', path: 'android-sdk'},
+
+ # Atlassian SDK
+ {type: 'atlassian-sdk', version: 'latest', path: 'atlassian-sdk'},
+
+ # Node.js versions
+ {type: 'node', version: '0.12', path: 'node0.12'},
+ {type: 'node', version: '4', path: 'node4'},
+ {type: 'node', version: '5', path: 'node5'},
+ {type: 'node', version: '6', path: 'node6'},
+ {type: 'node', version: '7', path: 'node7'},
+ {type: 'node', version: '8', path: 'node8'},
+ {type: 'node', version: '9', path: 'node9'},
+ {type: 'node', version: '10', path: 'node10'},
+ {type: 'node', version: '11', path: 'node11'},
+ {type: 'node', version: '12', path: 'node12'},
+ {type: 'node', version: '13', path: 'node13'},
+ {type: 'node', version: '14', path: 'node14'},
+ {type: 'node', version: '15', path: 'node15'},
+ {type: 'node', version: '16', path: 'node16'},
+ {type: 'node', version: '17', path: 'node17'},
+ {type: 'node', version: '18', path: 'node18'},
+ {type: 'node', version: '19', path: 'node19'},
+ {type: 'node', version: '20', path: 'node20'},
+ {type: 'node', version: '21', path: 'node21'},
+ {type: 'node', version: '22', path: 'node22'},
+ {type: 'node', version: '23', path: 'node23'},
+
+ # PHP versions
+ {type: 'php', version: '5.6', path: 'php56'},
+ {type: 'php', version: '7.0', path: 'php70'},
+ {type: 'php', version: '7.1', path: 'php71'},
+ {type: 'php', version: '7.2', path: 'php72'},
+ {type: 'php', version: '7.3', path: 'php73'},
+ {type: 'php', version: '7.4', path: 'php74'},
+ {type: 'php', version: '8.0', path: 'php80'},
+ {type: 'php', version: '8.1', path: 'php81'},
+ {type: 'php', version: '8.2', path: 'php82'},
+ {type: 'php', version: '8.3', path: 'php83'},
+ {type: 'php', version: '8.4', path: 'php84'}
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Github Runner ${{ matrix.agent_type.type }} ${{ matrix.agent_type.version }}
+ run: cd linux/ecosystem/github/runner/${{ matrix.agent_type.path }} && pwd && make build && make deploy
+
+ - name: Cleanup
+ run: make clean
diff --git a/.github/workflows/epicmorg.ecosysctem.misc.images.yml b/.github/workflows/epicmorg.ecosysctem.images.misc.yml
similarity index 57%
rename from .github/workflows/epicmorg.ecosysctem.misc.images.yml
rename to .github/workflows/epicmorg.ecosysctem.images.misc.yml
index 04ec23e25..2a55675e3 100644
--- a/.github/workflows/epicmorg.ecosysctem.misc.images.yml
+++ b/.github/workflows/epicmorg.ecosysctem.images.misc.yml
@@ -98,148 +98,6 @@ jobs:
- name: Build and Deploy vk2discord
run: cd linux/ecosystem/vk2discord && make build && make deploy
-##################################################################################
-
- build-qbittorrent-image:
- name: EpicMorg EcoSystem qBittorrent Image
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: Build and Deploy qBittorrent 4.4.0
- run: cd linux/ecosystem/qbittorrent/4.4.0 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.4.1
- run: cd linux/ecosystem/qbittorrent/4.4.1 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.4.2
- run: cd linux/ecosystem/qbittorrent/4.4.2 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.4.3.1
- run: cd linux/ecosystem/qbittorrent/4.4.3.1 && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: Build and Deploy qBittorrent 4.4.4
- run: cd linux/ecosystem/qbittorrent/4.4.4 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.4.5
- run: cd linux/ecosystem/qbittorrent/4.4.5 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.5.0
- run: cd linux/ecosystem/qbittorrent/4.5.0 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.5.1
- run: cd linux/ecosystem/qbittorrent/4.5.1 && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: Build and Deploy qBittorrent 4.5.2
- run: cd linux/ecosystem/qbittorrent/4.5.2 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.5.3
- run: cd linux/ecosystem/qbittorrent/4.5.3 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.5.4
- run: cd linux/ecosystem/qbittorrent/4.5.4 && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: Build and Deploy qBittorrent 4.5.5
- run: cd linux/ecosystem/qbittorrent/4.5.5 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.6.0
- run: cd linux/ecosystem/qbittorrent/4.6.0 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.6.1
- run: cd linux/ecosystem/qbittorrent/4.6.1 && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: Build and Deploy qBittorrent 4.6.2
- run: cd linux/ecosystem/qbittorrent/4.6.2 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.6.3
- run: cd linux/ecosystem/qbittorrent/4.6.3 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.6.4
- run: cd linux/ecosystem/qbittorrent/4.6.4 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.6.5
- run: cd linux/ecosystem/qbittorrent/4.6.5 && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: Build and Deploy qBittorrent 4.6.6
- run: cd linux/ecosystem/qbittorrent/4.6.6 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 4.6.7
- run: cd linux/ecosystem/qbittorrent/4.6.7 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 5.0.0
- run: cd linux/ecosystem/qbittorrent/5.0.0 && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: Build and Deploy qBittorrent 5.0.1
- run: cd linux/ecosystem/qbittorrent/5.0.1 && make build && make deploy
-
- - name: Build and Deploy qBittorrent 5.0.2
- run: cd linux/ecosystem/qbittorrent/5.0.2 && make build && make deploy
-
- - name: Build and Deploy qBittorrent Testing
- run: cd linux/ecosystem/qbittorrent/testing && make build && make deploy
-
##################################################################################
build-opentracker-image:
@@ -302,40 +160,6 @@ jobs:
# - name: Build and Deploy reTracker
# run: cd linux/ecosystem/retracker && make build && make deploy
-##################################################################################
-
- build-torrust-tracker-image:
- name: EpicMorg EcoSystem Torrust Tracker Image
- runs-on: [ ubuntu-24.04 ]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Log into docker registry
- run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
-
- - name: Log into Quay.IO registry
- run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
-
-# - name: Log into harbor registry
-# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
-
- - name: Check buildah
- run: |
- buildah --version
-
- - name: Test Make
- run: make
-
- - name: Install requirements.txt
- run: make pip
-
- - name: Build and Deploy Torrust Tracker
- run: cd linux/ecosystem/torrust-tracker && make build && make deploy
-# to rework
-# - name: Build and Deploy Torrust Index
-# run: cd linux/ecosystem/torrust-index && make build && make deploy
-
##################################################################################
build-monero-cli-image:
diff --git a/.github/workflows/epicmorg.base.images.web.yml b/.github/workflows/epicmorg.ecosysctem.images.nginx.yml.disabled
similarity index 53%
rename from .github/workflows/epicmorg.base.images.web.yml
rename to .github/workflows/epicmorg.ecosysctem.images.nginx.yml.disabled
index 8641eaf7d..69e163cd5 100644
--- a/.github/workflows/epicmorg.base.images.web.yml
+++ b/.github/workflows/epicmorg.ecosysctem.images.nginx.yml.disabled
@@ -1,4 +1,4 @@
-name: EpicMorg EcoSystem Web Images
+name: EpicMorg EcoSystem Nginx Images
on:
workflow_dispatch:
@@ -33,55 +33,6 @@ jobs:
- name: Install requirements.txt
run: make pip
-# - name: "Build and Deploy Apache 2 Latest Image:"
-# run: cd linux/ecosystem/apache2/latest && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 5.6 Image:"
- run: cd linux/ecosystem/apache2/php5.6 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 7.0 Image:"
- run: cd linux/ecosystem/apache2/php7.0 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 7.1 Image:"
- run: cd linux/ecosystem/apache2/php7.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 7.2 Image:"
- run: cd linux/ecosystem/apache2/php7.2 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Apache 2 + PHP 7.3 Image:"
- run: cd linux/ecosystem/apache2/php7.3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 7.4 Image:"
- run: cd linux/ecosystem/apache2/php7.4 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 8.0 Image:"
- run: cd linux/ecosystem/apache2/php8.0 && pwd && make build && make deploy
-
-##################################################################################
-
- - name: Cleanup
- run: make clean
-
-##################################################################################
-
- - name: "Build and Deploy Apache 2 + PHP 8.1 Image:"
- run: cd linux/ecosystem/apache2/php8.1 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 8.2 Image:"
- run: cd linux/ecosystem/apache2/php8.2 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 8.3 Image:"
- run: cd linux/ecosystem/apache2/php8.3 && pwd && make build && make deploy
-
- - name: "Build and Deploy Apache 2 + PHP 8.4 Image:"
- run: cd linux/ecosystem/apache2/php8.4 && pwd && make build && make deploy
# ##################################################################################
#
diff --git a/.github/workflows/epicmorg.ecosysctem.images.perforce.yml b/.github/workflows/epicmorg.ecosysctem.images.perforce.yml
new file mode 100644
index 000000000..647b6f8c8
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.perforce.yml
@@ -0,0 +1,51 @@
+name: EpicMorg EcoSystem Perforce Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '4 4 * * 1,3,5'
+
+jobs:
+ build-perforce-images:
+ name: Build Perforce and Proxy Images
+ runs-on: ubuntu-24.04
+ strategy:
+ matrix:
+ version: [
+ 'r16.2',
+ 'r17.1', 'r17.2',
+ 'r18.1', 'r18.2',
+ 'r19.1', 'r19.2',
+ 'r20.1', 'r20.2',
+ 'r21.1', 'r21.2',
+ 'r22.1',
+ 'r23.1', 'r23.2',
+ 'r24.2'
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Perforce ${{ matrix.version }}
+ run: cd linux/ecosystem/perforce/base/${{ matrix.version }} && pwd && make build && make deploy
+
+ - name: Build and Deploy Perforce Proxy ${{ matrix.version }}
+ run: cd linux/ecosystem/perforce/p4p/${{ matrix.version }} && pwd && make build && make deploy
+
+ - name: Final Cleanup
+ run: make clean
\ No newline at end of file
diff --git a/.github/workflows/epicmorg.ecosysctem.images.postgresql.yml b/.github/workflows/epicmorg.ecosysctem.images.postgresql.yml
new file mode 100644
index 000000000..1e35147d3
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.postgresql.yml
@@ -0,0 +1,43 @@
+name: EpicMorg EcoSystem PostgreSQL Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '5 5 * * 1,3,5'
+
+jobs:
+ build-pgsql-images:
+ name: Build PostgreSQL ${{ matrix.version }}
+ runs-on: ubuntu-24.04
+ strategy:
+ matrix:
+ version: [
+ '8.2', '8.3', '8.4',
+ '9.0', '9.1', '9.2', '9.3', '9.4', '9.5', '9.6',
+ '10', '11', '12', '13', '14', '15', '16'
+ # '17', '18'
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy PostgreSQL ${{ matrix.version }}
+ run: cd linux/ecosystem/postgres/${{ matrix.version }} && pwd && make build && make deploy
+
+ - name: Cleanup
+ run: make clean
\ No newline at end of file
diff --git a/.github/workflows/epicmorg.ecosysctem.images.qbittorrent.yml b/.github/workflows/epicmorg.ecosysctem.images.qbittorrent.yml
new file mode 100644
index 000000000..c08b730dc
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.qbittorrent.yml
@@ -0,0 +1,47 @@
+name: EpicMorg EcoSystem QBittorrent Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '0 0 * * 2,4,6'
+
+jobs:
+ build-qbittorrent-images:
+ name: Build qBittorrent Images
+ runs-on: ubuntu-24.04
+ strategy:
+ matrix:
+ version: [
+ 'testing',
+ '4.4.0', '4.4.1', '4.4.2', '4.4.3.1', '4.4.4', '4.4.5',
+ '4.5.0', '4.5.1', '4.5.2', '4.5.3', '4.5.4', '4.5.5',
+ '4.6.0', '4.6.1', '4.6.2', '4.6.3', '4.6.4', '4.6.5', '4.6.6', '4.6.7',
+ '5.0.0', '5.0.1', '5.0.2', '5.0.3', '5.0.4', '5.0.5'
+ ]
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy qBittorrent ${{ matrix.version }}
+ run: cd linux/ecosystem/qbittorrent/${{ matrix.version }} && make build && make deploy
+
+##################################################################################
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
diff --git a/.github/workflows/epicmorg.ecosysctem.images.teamcity.agents.yml b/.github/workflows/epicmorg.ecosysctem.images.teamcity.agents.yml
new file mode 100644
index 000000000..a184ca79a
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.teamcity.agents.yml
@@ -0,0 +1,110 @@
+name: EpicMorg EcoSystem TeamCity Agents Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '4 4 * * 2,4,6'
+
+jobs:
+ build-main-agents:
+ name: Build Main TeamCity Agents
+ runs-on: ubuntu-24.04
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Minimal Agent (jdk21)
+ run: cd linux/ecosystem/teamcity/agent/minimal && pwd && make build && make deploy
+
+ - name: Build and Deploy Main Agent (jdk21)
+ run: cd linux/ecosystem/teamcity/agent/latest && pwd && make build && make deploy
+
+ build-additional-agents:
+ name: Build Additional TeamCity Agents
+ runs-on: ubuntu-24.04
+ needs: build-main-agents
+ strategy:
+ matrix:
+ agent_type: [
+ # AMXX SDK
+ {type: 'amxx-sdk', version: '1.9', path: 'amxx-sdk/1.9'},
+ {type: 'amxx-sdk', version: '1.10', path: 'amxx-sdk/1.10'},
+
+ # Android SDK
+ {type: 'android-sdk', version: 'latest', path: 'android-sdk'},
+
+ # Atlassian SDK
+ {type: 'atlassian-sdk', version: 'latest', path: 'atlassian-sdk'},
+
+ # Node.js versions
+ {type: 'node', version: '0.12', path: 'node0.12'},
+ {type: 'node', version: '4', path: 'node4'},
+ {type: 'node', version: '5', path: 'node5'},
+ {type: 'node', version: '6', path: 'node6'},
+ {type: 'node', version: '7', path: 'node7'},
+ {type: 'node', version: '8', path: 'node8'},
+ {type: 'node', version: '9', path: 'node9'},
+ {type: 'node', version: '10', path: 'node10'},
+ {type: 'node', version: '11', path: 'node11'},
+ {type: 'node', version: '12', path: 'node12'},
+ {type: 'node', version: '13', path: 'node13'},
+ {type: 'node', version: '14', path: 'node14'},
+ {type: 'node', version: '15', path: 'node15'},
+ {type: 'node', version: '16', path: 'node16'},
+ {type: 'node', version: '17', path: 'node17'},
+ {type: 'node', version: '18', path: 'node18'},
+ {type: 'node', version: '19', path: 'node19'},
+ {type: 'node', version: '20', path: 'node20'},
+ {type: 'node', version: '21', path: 'node21'},
+ {type: 'node', version: '22', path: 'node22'},
+ {type: 'node', version: '23', path: 'node23'},
+
+ # PHP versions
+ {type: 'php', version: '5.6', path: 'php56'},
+ {type: 'php', version: '7.0', path: 'php70'},
+ {type: 'php', version: '7.1', path: 'php71'},
+ {type: 'php', version: '7.2', path: 'php72'},
+ {type: 'php', version: '7.3', path: 'php73'},
+ {type: 'php', version: '7.4', path: 'php74'},
+ {type: 'php', version: '8.0', path: 'php80'},
+ {type: 'php', version: '8.1', path: 'php81'},
+ {type: 'php', version: '8.2', path: 'php82'},
+ {type: 'php', version: '8.3', path: 'php83'},
+ {type: 'php', version: '8.4', path: 'php84'}
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy TeamCity Agent ${{ matrix.agent_type.type }} ${{ matrix.agent_type.version }}
+ run: cd linux/ecosystem/teamcity/agent/${{ matrix.agent_type.path }} && pwd && make build && make deploy
+
+ - name: Cleanup
+ run: make clean
diff --git a/.github/workflows/epicmorg.ecosysctem.images.testrail.yml b/.github/workflows/epicmorg.ecosysctem.images.testrail.yml
new file mode 100644
index 000000000..7e8263f93
--- /dev/null
+++ b/.github/workflows/epicmorg.ecosysctem.images.testrail.yml
@@ -0,0 +1,304 @@
+name: EpicMorg EcoSystem Testrail Images
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: '4 4 * * 1,3,5'
+
+jobs:
+ build-testrail-main-images:
+ name: Build EpicMorg Testrail Main Images
+ runs-on: [ ubuntu-24.04 ]
+ strategy:
+ matrix:
+ version: [
+ '5.4.1.3669',
+ '5.5.0.3727',
+ '5.5.0.3731',
+ '5.5.0.3735',
+ '5.5.1.3746',
+ '5.6.0.3853',
+ '5.6.0.3856',
+ '5.6.0.3861',
+ '5.6.0.3862',
+ '5.6.0.3865',
+ '5.7.0.3938',
+ '5.7.0.3942',
+ '5.7.0.3951',
+ '5.7.1.4026',
+ '5.7.1.4028',
+ '6.0.0.4140',
+ '6.0.1.4163',
+ '6.1.0.4367',
+ '6.1.0.4369',
+ '6.1.1.1020',
+ '6.1.1.1021',
+ '6.2.0.1085',
+ '6.2.1.1003',
+ '6.2.1.1005',
+ '6.2.2.1107',
+ '6.2.3.1114',
+ '6.3.0.1120',
+ '6.3.1.1004',
+ '6.3.1.1006',
+ '6.4.0.1284',
+ '6.4.0.1293',
+ '6.5.0.1298',
+ '6.5.1.1002',
+ '6.5.3.1001',
+ '6.5.4.1002',
+ '6.5.4.1007',
+ '6.5.5.1009',
+ '6.5.6.1014',
+ '6.5.7.1000',
+ '6.6.0.1156',
+ '6.6.1.1166',
+ '6.7.1.1020',
+ '6.7.2.1037',
+ '6.7.2.1043',
+ '7.0.0.1057',
+ '7.0.1.1002',
+ '7.0.1.1013',
+ '7.0.2.1014',
+ '7.0.2.1015',
+ '7.0.2.1016',
+ '7.4.1.8079',
+ '7.4.1.8091',
+ '7.4.1.8092',
+ '7.5.1.7010',
+ '7.5.1.7012',
+ '7.5.1.7013',
+ '7.5.2.1002',
+ '7.5.3.1000',
+ '8.0.0.1089',
+ '8.0.1.1029',
+ '8.0.4.7036',
+ '8.0.6.1019',
+ '8.1.0.6186',
+ '9.0.0.1057'
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Testrail ${{ matrix.version }} Image:"
+ run: cd linux/ecosystem/testrail/${{ matrix.version }}/main && pwd && make build && make deploy
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-testrail-ad-images:
+ name: Build EpicMorg Testrail AD Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-testrail-main-images
+ strategy:
+ matrix:
+ version: [
+ '5.4.1.3669',
+ '5.5.0.3727',
+ '5.5.0.3731',
+ '5.5.0.3735',
+ '5.5.1.3746',
+ '5.6.0.3853',
+ '5.6.0.3856',
+ '5.6.0.3861',
+ '5.6.0.3862',
+ '5.6.0.3865',
+ '5.7.0.3938',
+ '5.7.0.3942',
+ '5.7.0.3951',
+ '5.7.1.4026',
+ '5.7.1.4028',
+ '6.0.0.4140',
+ '6.0.1.4163',
+ '6.1.0.4367',
+ '6.1.0.4369',
+ '6.1.1.1020',
+ '6.1.1.1021',
+ '6.2.0.1085',
+ '6.2.1.1003',
+ '6.2.1.1005',
+ '6.2.2.1107',
+ '6.2.3.1114',
+ '6.3.0.1120',
+ '6.3.1.1004',
+ '6.3.1.1006',
+ '6.4.0.1284',
+ '6.4.0.1293',
+ '6.5.0.1298',
+ '6.5.1.1002',
+ '6.5.3.1001',
+ '6.5.4.1002',
+ '6.5.4.1007',
+ '6.5.5.1009',
+ '6.5.6.1014',
+ '6.5.7.1000',
+ '6.6.0.1156',
+ '6.6.1.1166',
+ '6.7.1.1020',
+ '6.7.2.1037',
+ '6.7.2.1043',
+ '7.0.0.1057',
+ '7.0.1.1002',
+ '7.0.1.1013',
+ '7.0.2.1014',
+ '7.0.2.1015',
+ '7.0.2.1016',
+ '7.4.1.8079',
+ '7.4.1.8091',
+ '7.4.1.8092',
+ '7.5.1.7010',
+ '7.5.1.7012',
+ '7.5.1.7013',
+ '7.5.2.1002',
+ '7.5.3.1000',
+ '8.0.0.1089',
+ '8.0.1.1029',
+ '8.0.4.7036',
+ '8.0.6.1019',
+ '8.1.0.6186',
+ '9.0.0.1057'
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Testrail ${{ matrix.version }} + AD Image:"
+ run: cd linux/ecosystem/testrail/${{ matrix.version }}/ad && pwd && make build && make deploy
+
+ - name: Cleanup
+ run: make clean
+
+##################################################################################
+
+ build-testrail-ldap-images:
+ name: Build EpicMorg Testrail LDAP Images
+ runs-on: [ ubuntu-24.04 ]
+ needs: build-testrail-main-images
+ strategy:
+ matrix:
+ version: [
+ '5.4.1.3669',
+ '5.5.0.3727',
+ '5.5.0.3731',
+ '5.5.0.3735',
+ '5.5.1.3746',
+ '5.6.0.3853',
+ '5.6.0.3856',
+ '5.6.0.3861',
+ '5.6.0.3862',
+ '5.6.0.3865',
+ '5.7.0.3938',
+ '5.7.0.3942',
+ '5.7.0.3951',
+ '5.7.1.4026',
+ '5.7.1.4028',
+ '6.0.0.4140',
+ '6.0.1.4163',
+ '6.1.0.4367',
+ '6.1.0.4369',
+ '6.1.1.1020',
+ '6.1.1.1021',
+ '6.2.0.1085',
+ '6.2.1.1003',
+ '6.2.1.1005',
+ '6.2.2.1107',
+ '6.2.3.1114',
+ '6.3.0.1120',
+ '6.3.1.1004',
+ '6.3.1.1006',
+ '6.4.0.1284',
+ '6.4.0.1293',
+ '6.5.0.1298',
+ '6.5.1.1002',
+ '6.5.3.1001',
+ '6.5.4.1002',
+ '6.5.4.1007',
+ '6.5.5.1009',
+ '6.5.6.1014',
+ '6.5.7.1000',
+ '6.6.0.1156',
+ '6.6.1.1166',
+ '6.7.1.1020',
+ '6.7.2.1037',
+ '6.7.2.1043',
+ '7.0.0.1057',
+ '7.0.1.1002',
+ '7.0.1.1013',
+ '7.0.2.1014',
+ '7.0.2.1015',
+ '7.0.2.1016',
+ '7.4.1.8079',
+ '7.4.1.8091',
+ '7.4.1.8092',
+ '7.5.1.7010',
+ '7.5.1.7012',
+ '7.5.1.7013',
+ '7.5.2.1002',
+ '7.5.3.1000',
+ '8.0.0.1089',
+ '8.0.1.1029',
+ '8.0.4.7036',
+ '8.0.6.1019',
+ '8.1.0.6186',
+ '9.0.0.1057'
+ ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: "Build and Deploy Testrail ${{ matrix.version }} + LDAP Image:"
+ run: cd linux/ecosystem/testrail/${{ matrix.version }}/ldap && pwd && make build && make deploy
+
+ - name: Cleanup
+ run: make clean
diff --git a/.github/workflows/epicmorg.base.images.current.atlassian.yml b/.github/workflows/epicmorg.ecosystem.images.atlassian.latest.yml
similarity index 100%
rename from .github/workflows/epicmorg.base.images.current.atlassian.yml
rename to .github/workflows/epicmorg.ecosystem.images.atlassian.latest.yml
diff --git a/.github/workflows/epicmorg.experimental.images.yml b/.github/workflows/epicmorg.experimental.images.yml
index 1c11cc818..55ca88f53 100644
--- a/.github/workflows/epicmorg.experimental.images.yml
+++ b/.github/workflows/epicmorg.experimental.images.yml
@@ -45,3 +45,35 @@ jobs:
run: make clean
##################################################################################
+
+ build-torrust-tracker-image:
+ name: EpicMorg EcoSystem Torrust Tracker Image
+ runs-on: [ ubuntu-24.04 ]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Log into docker registry
+ run: echo "${{ secrets.DOCKER_SERVER_KEY }}" | docker login -u "${{ secrets.DOCKER_SERVER_LOGIN }}" --password-stdin
+
+ - name: Log into Quay.IO registry
+ run: echo "${{ secrets.QUAY_SERVER_KEY }}" | docker login -u "${{ secrets.QUAY_SERVER_LOGIN }}" --password-stdin "${{ secrets.QUAY_SERVER_URL }}"
+
+# - name: Log into harbor registry
+# run: echo "${{ secrets.HARBOR_SERVER_KEY }}" | docker login -u "${{ secrets.HARBOR_SERVER_LOGIN }}" --password-stdin "${{ secrets.HARBOR_SERVER_URL }}"
+
+ - name: Check buildah
+ run: |
+ buildah --version
+
+ - name: Test Make
+ run: make
+
+ - name: Install requirements.txt
+ run: make pip
+
+ - name: Build and Deploy Torrust Tracker
+ run: cd linux/ecosystem/torrust-tracker && make build && make deploy
+# to rework
+# - name: Build and Deploy Torrust Index
+# run: cd linux/ecosystem/torrust-index && make build && make deploy
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 63331e896..d5a0f9862 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
# Changelog
+
+## 2025
+
* `apr`
* updated `cassandra`
* added support for `Java` base images of custom CA certs
@@ -23,7 +26,7 @@
* added `nextcloud` version `31`
* updated `python`
* updated `gitlab-runner`
-## 2025
+
* `mar`
* updated `teamcity-server` iamge
* added new `atlassian images`: `conflunece` 4 - 9, updated `jira` and `bitbucket`, added new `crowd` iamges.
@@ -34,6 +37,7 @@
* Makefiles switched to `buildah` build runtime
* `GHA` switched to `buildah` build runtime
* updated `nodejs`, `jdk` base images
+
* `feb`
* added `zabbix` images with `7.2` version
* added `OpenSSL` version `3.4.x` and `1.0.2u`.
@@ -41,6 +45,7 @@
* created `python` base images.
* updated `nextcloud` images.
* fixed `sid` and `trixie` images.
+
* `jan`
* updated `atlassian` images
* updated some deps in images:
@@ -52,6 +57,7 @@
* fixed building of `debian` `12`, `13`, `sid`:
* temprorary deprecated `boringssl` due compile issues.
* also, current maintainer do not like google's `rolling` update politics.
+
## 2024
* `dec`
* reworked `dhparam` regeneration in base images
diff --git a/README.md b/README.md
index 260b7efa3..8794ebef7 100644
--- a/README.md
+++ b/README.md
@@ -53,7 +53,7 @@ A collection of docker images for production use. This repo contains 2 types of
| [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.advanced.nextcloud.images.yml) | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.base.images.web.yml)
| [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.advanced.zabbix.images.yml) | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.base.images.testrail.yml)
| [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.advanced.vscode.images.yml) | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.base.images.teamcity.agents.yml)
-| [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.advanced.teamcity.servers.yml) | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.ecosysctem.misc.images.yml)
+| [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.advanced.teamcity.servers.yml) | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.ecosysctem.misc.images.yml)
| `-` | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.base.images.current.atlassian.yml)
| `-` | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.base.images.perforce.yml)
| `-` | [](https://github.com/EpicMorg/docker/actions/workflows/epicmorg.base.images.giltab.runners.yml)
diff --git a/linux/advanced/vscode-server/amxx/1.10/Makefile b/linux/advanced/vscode-server/amxx/1.10/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/amxx/1.10/Makefile
+++ b/linux/advanced/vscode-server/amxx/1.10/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/amxx/1.9/Makefile b/linux/advanced/vscode-server/amxx/1.9/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/amxx/1.9/Makefile
+++ b/linux/advanced/vscode-server/amxx/1.9/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/android/Dockerfile b/linux/advanced/vscode-server/android/Dockerfile
index 12d926312..e4fe21e65 100644
--- a/linux/advanced/vscode-server/android/Dockerfile
+++ b/linux/advanced/vscode-server/android/Dockerfile
@@ -1,7 +1,7 @@
################################################################################
# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server
################################################################################
-FROM quay.io/epicmorg/vscode-server:latest
+FROM quay.io/epicmorg/vscode-server:cpp
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
@@ -148,17 +148,12 @@ RUN sdkmanager --install --verbose \
#
"platform-tools" \
#
- "platforms;android-21" \
- "platforms;android-34" \
"platforms;android-35" \
#
- "build-tools;21.1.2" \
- "build-tools;34.0.0" \
"build-tools;35.0.0" \
#
"extras;android;m2repository" \
#
- "ndk;25.1.8937393" \
"ndk;25.2.9519653"
ENV PATH="${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/tools/bin:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/tools/proguard/bin:${ANDROID_SDK_ROOT}/platform-tools:${PATH}"
diff --git a/linux/advanced/vscode-server/android/Makefile b/linux/advanced/vscode-server/android/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/android/Makefile
+++ b/linux/advanced/vscode-server/android/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/android/docker-compose.yml b/linux/advanced/vscode-server/android/docker-compose.yml
index 246ab4b92..44dfaec6a 100644
--- a/linux/advanced/vscode-server/android/docker-compose.yml
+++ b/linux/advanced/vscode-server/android/docker-compose.yml
@@ -3,7 +3,3 @@ services:
image: "quay.io/epicmorg/vscode-server:android"
build:
context: .
- app-jdk17:
- image: "quay.io/epicmorg/debian:bookworm-develop-jdk17"
- build:
- context: .
diff --git a/linux/advanced/vscode-server/cpp/Dockerfile b/linux/advanced/vscode-server/cpp/Dockerfile
index a20682d6f..ef5aabe6c 100644
--- a/linux/advanced/vscode-server/cpp/Dockerfile
+++ b/linux/advanced/vscode-server/cpp/Dockerfile
@@ -256,6 +256,8 @@ RUN apt-get update && \
autopkgtest \
gcc-multilib \
g++-multilib \
+ clang \
+ pkg-config \
libxkbcommon-dev \
zlib1g-dev \
libfreetype6-dev \
diff --git a/linux/advanced/vscode-server/cpp/Makefile b/linux/advanced/vscode-server/cpp/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/cpp/Makefile
+++ b/linux/advanced/vscode-server/cpp/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/devops/Dockerfile b/linux/advanced/vscode-server/devops/Dockerfile
deleted file mode 100644
index c7c9149d0..000000000
--- a/linux/advanced/vscode-server/devops/Dockerfile
+++ /dev/null
@@ -1,611 +0,0 @@
-################################################################################
-# https://github.com/linuxserver/docker-code-server/pkgs/container/code-server
-################################################################################
-FROM quay.io/epicmorg/vscode-server:latest
-
-LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
-ARG DEBIAN_FRONTEND=noninteractive
-
-##################################################################
-# ARGuments
-##################################################################
-ENV BuildDocker true
-
-ENV ANDROID_HOME=/usr/lib/android-sdk
-ENV ANDROID_SDK_ROOT=/usr/lib/android-sdk
-
-ARG K_NODE_MAJOR_VERSION=22
-ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.6.0
-ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
-ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
-
-##################################################################
-# dotnet setup
-##################################################################
-ENV DOTNET_CHANNEL=LTS
-ENV DOTNET_ROOT=${EMG_LOCAL_BASE_DIR}/dotnet/${DOTNET_CHANNEL}
-ARG DOTNET_TOOLS_DIR=${DOTNET_ROOT}/tools
-ARG DOTNET_INSTALL_DIR=${DOTNET_ROOT}
-ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh
-
-# Opt out of the telemetry feature
-ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
-# Disable first time experience
-ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-# Configure Kestrel web server to bind to port 80 when present
-ENV ASPNETCORE_URLS=\
-# Enable detection of running in a container
-ENV DOTNET_RUNNING_IN_CONTAINER=true
-# Enable correct mode for dotnet watch (only mode supported in a container)
-ENV DOTNET_USE_POLLING_FILE_WATCHER=true
-# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance
-ENV NUGET_XMLDOC_MODE=skip
-# unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359]
-ENV CLR_OPENSSL_VERSION_OVERRIDE=45
-# PowerShell telemetry for docker image usage
-ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-20.04
-
-RUN mkdir -p /usr/share/dotnet/host/fxr
-
-##################################################################
-# java11
-##################################################################
-ARG K_JDK_MAJOR_VERSION=11
-ARG K_JDK_FULL_VERSION=jdk-11.0.27
-ARG K_JDK_VERSION=11.0.27
-ARG K_JDK_BUILD_VERSION=6
-ARG K_JDK_URL=https://github.com/adoptium/temurin${K_JDK_MAJOR_VERSION}-binaries/releases/download/${K_JDK_FULL_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK${K_JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz
-ARG K_JDK_TEMP=/tmp/OpenJDK${K_JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz
-
-ENV JAVA_HOME=/usr/local/${K_JDK_FULL_VERSION}+${K_JDK_BUILD_VERSION}
-ENV JRE_HOME=${JAVA_HOME}
-ENV JDK_HOME=${JAVA_HOME}
-ENV PATH=$PATH:${JAVA_HOME}/bin
-
-# steam runtime sdk
-ENV STEAM_RUNTIME_SDK_DIR=${EMG_LOCAL_BASE_DIR}/valve/steam/runtime-sdk/latest
-ARG STEAM_RUNTIME_SDK_BIN_DIR=${STEAM_RUNTIME_SDK_DIR}/bin
-ARG STEAM_RUNTIME_SDK_URL=http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz
-ARG STEAM_RUNTIME_SDK_TEMP=/tmp/steam-runtime-sdk_latest.tar.xz
-
-# cmake compiller
-ENV CMAKE_3_31_VERSION=3.31.6
-ENV CMAKE_3_31_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_3_31_VERSION}
-ARG CMAKE_3_31_BIN_DIR=${CMAKE_3_31_DIR}/bin
-ARG CMAKE_3_31_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_3_31_VERSION}/cmake-${CMAKE_3_31_VERSION}-linux-x86_64.tar.gz
-ARG CMAKE_3_31_TEMP=/tmp/cmake-${CMAKE_3_31_VERSION}-linux-x86_64.tar.gz
-
-# cmake compiller
-ENV CMAKE_3_30_VERSION=3.30.8
-ENV CMAKE_3_30_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_3_30_VERSION}
-ARG CMAKE_3_30_BIN_DIR=${CMAKE_3_30_DIR}/bin
-ARG CMAKE_3_30_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_3_30_VERSION}/cmake-${CMAKE_3_30_VERSION}-linux-x86_64.tar.gz
-ARG CMAKE_3_30_TEMP=/tmp/cmake-${CMAKE_3_30_VERSION}-linux-x86_64.tar.gz
-
-# cmake compiller
-ENV CMAKE_3_21_VERSION=3.21.7
-ENV CMAKE_3_21_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_3_21_VERSION}
-ARG CMAKE_3_21_BIN_DIR=${CMAKE_3_21_DIR}/bin
-ARG CMAKE_3_21_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_3_21_VERSION}/cmake-${CMAKE_3_21_VERSION}-linux-x86_64.tar.gz
-ARG CMAKE_3_21_TEMP=/tmp/cmake-${CMAKE_3_21_VERSION}-linux-x86_64.tar.gz
-
-# cmake compiller
-ENV CMAKE_3_20_VERSION=3.20.6
-ENV CMAKE_3_20_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_3_20_VERSION}
-ARG CMAKE_3_20_BIN_DIR=${CMAKE_3_20_DIR}/bin
-ARG CMAKE_3_20_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_3_20_VERSION}/cmake-${CMAKE_3_20_VERSION}-linux-x86_64.tar.gz
-ARG CMAKE_3_20_TEMP=/tmp/cmake-${CMAKE_3_20_VERSION}-linux-x86_64.tar.gz
-
-# cmake compiller
-ENV CMAKE_3_19_VERSION=3.19.8
-ENV CMAKE_3_19_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_3_19_VERSION}
-ARG CMAKE_3_19_BIN_DIR=${CMAKE_3_19_DIR}/bin
-ARG CMAKE_3_19_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_3_19_VERSION}/cmake-${CMAKE_3_19_VERSION}-linux-x86_64.tar.gz
-ARG CMAKE_3_19_TEMP=/tmp/cmake-${CMAKE_3_19_VERSION}-linux-x86_64.tar.gz
-
-# cmake compiller
-ENV CMAKE_3_18_VERSION=3.18.6
-ENV CMAKE_3_18_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_3_18_VERSION}
-ARG CMAKE_3_18_BIN_DIR=${CMAKE_3_18_DIR}/bin
-ARG CMAKE_3_18_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_3_18_VERSION}/cmake-${CMAKE_3_18_VERSION}-linux-x86_64.tar.gz
-ARG CMAKE_3_18_TEMP=/tmp/cmake-${CMAKE_3_18_VERSION}-linux-x86_64.tar.gz
-
-# cmake compiller
-ENV CMAKE_3_16_VERSION=3.16.9
-ENV CMAKE_3_16_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_3_16_VERSION}
-ARG CMAKE_3_16_BIN_DIR=${CMAKE_3_16_DIR}/bin
-ARG CMAKE_3_16_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_3_16_VERSION}/cmake-${CMAKE_3_16_VERSION}-linux-x86_64.tar.gz
-ARG CMAKE_3_16_TEMP=/tmp/cmake-${CMAKE_3_16_VERSION}-linux-x86_64.tar.gz
-
-# flutter source tarball
-ENV FLUTTER_VERSION=3.29.2
-ENV FLUTTER_CHANNEL=stable
-ENV FLUTTER_DIR=${EMG_LOCAL_BASE_DIR}/flutter/${FLUTTER_VERSION}
-ARG FLUTTER_BIN_DIR=${FLUTTER_DIR}/bin
-ARG FLUTTER_DOWNLOAD_URL=https://storage.googleapis.com/flutter_infra_release/releases/${FLUTTER_CHANNEL}/linux/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz
-ARG FLUTTER_TEMP=/tmp/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz
-
-# ninja source tarball
-ENV NINJA_VERSION=1.12.1
-ENV NINJA_DIR=${EMG_LOCAL_BASE_DIR}/ninja/${NINJA_VERSION}
-ARG NINJA_BIN_DIR=${NINJA_DIR}/bin
-ARG NINJA_DOWNLOAD_URL=https://github.com/ninja-build/ninja/releases/download/v${NINJA_VERSION}/ninja-linux.zip
-ARG NINJA_TEMP=/tmp/ninja-linux.zip
-
-# GO source tarball
-ENV GO_VERSION=1.24.2
-ENV GO_DIR=${EMG_LOCAL_BASE_DIR}/go/${GO_VERSION}
-ARG GO_BIN_DIR=${GO_DIR}/bin
-ARG GO_PATH_DIR=${GO_DIR}/gopath
-ARG GO_PATH_BIN_DIR=${GO_PATH_DIR}/bin
-ARG GO_DOWNLOAD_URL=https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz
-ARG GO_TEMP=/tmp/go${GO_VERSION}.linux-amd64.tar.gz
-
-
-##################################################################
-# AMXXModX setup
-##################################################################
-#
-# Reserved for future
-# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-cstrike-linux` && \
-# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-dod-linux` && \
-# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-esf-linux` && \
-# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-ns-linux` && \
-# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-tfc-linux` && \
-# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-base-linux` && \
-#
-# Install packages
-ENV AMXX_VERSION=1.10
-ENV AMXX_INSTALL_PATH=${EMG_LOCAL_BASE_DIR}/amxmodx/${AMXX_VERSION}
-ENV AMXX_BIN_PATH=${AMXX_INSTALL_PATH}/scripting
-ENV AMXX_INC_PATH=${AMXX_BIN_PATH}/include
-ENV PATH=${AMXX_BIN_PATH}:${PATH}
-ENV LD_LIBRARY_PATH=${AMXX_BIN_PATH}:${LD_LIBRARY_PATH}
-
-COPY inc.tar /tmp
-
-RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-base-linux` && \
- mkdir -p ${AMXX_INSTALL_PATH} && \
- curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \
- cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \
- mv -f /tmp/addons/amxmodx/* ${AMXX_INSTALL_PATH} && \
- chmod +x ${AMXX_BIN_PATH}/amxxpc && \
- tar -C ${AMXX_INC_PATH} -xvf /tmp/inc.tar && \
- chmod -R 700 ${AMXX_INC_PATH} && \
- chmod +x ${AMXX_BIN_PATH}/compile.sh
-
-##################################################################
-# Rust compillers
-##################################################################
-ENV CARGO_HOME=${EMG_LOCAL_BASE_DIR}/cargo
-ENV RUSTUP_HOME=${EMG_LOCAL_BASE_DIR}/rustup
-ARG CARGO_BIN=${CARGO_HOME}/bin
-
-RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile complete --default-toolchain stable --verbose
-
-ENV PATH="$CARGO_HOME/bin:${PATH}"
-
-RUN echo "=============================================" && \
- echo cargo $(cargo --version) && \
- echo rustc $(rustc --version) && \
- echo rustup $(rustup --version) && \
- echo "============================================="
-
-##################################################################
-# CMake
-##################################################################
-RUN mkdir -p ${CMAKE_3_31_DIR} ${CMAKE_3_30_DIR} ${CMAKE_3_21_DIR} ${CMAKE_3_20_DIR} ${CMAKE_3_19_DIR} ${CMAKE_3_18_DIR} ${CMAKE_3_16_DIR}
-ADD ${CMAKE_3_31_DOWNLOAD_URL} /tmp
-ADD ${CMAKE_3_30_DOWNLOAD_URL} /tmp
-ADD ${CMAKE_3_21_DOWNLOAD_URL} /tmp
-ADD ${CMAKE_3_20_DOWNLOAD_URL} /tmp
-ADD ${CMAKE_3_19_DOWNLOAD_URL} /tmp
-ADD ${CMAKE_3_18_DOWNLOAD_URL} /tmp
-ADD ${CMAKE_3_16_DOWNLOAD_URL} /tmp
-
-RUN tar -xf ${CMAKE_3_31_TEMP} --directory ${CMAKE_3_31_DIR} --strip-components=1 && \
- chmod +x ${CMAKE_3_31_BIN_DIR}/ccmake && \
- chmod +x ${CMAKE_3_31_BIN_DIR}/cmake && \
- chmod +x ${CMAKE_3_31_BIN_DIR}/cmake-gui && \
- chmod +x ${CMAKE_3_31_BIN_DIR}/cpack && \
- chmod +x ${CMAKE_3_31_BIN_DIR}/ctest && \
- tar -xf ${CMAKE_3_30_TEMP} --directory ${CMAKE_3_30_DIR} --strip-components=1 && \
- chmod +x ${CMAKE_3_30_BIN_DIR}/ccmake && \
- chmod +x ${CMAKE_3_30_BIN_DIR}/cmake && \
- chmod +x ${CMAKE_3_30_BIN_DIR}/cmake-gui && \
- chmod +x ${CMAKE_3_30_BIN_DIR}/cpack && \
- chmod +x ${CMAKE_3_30_BIN_DIR}/ctest && \
- tar -xf ${CMAKE_3_21_TEMP} --directory ${CMAKE_3_21_DIR} --strip-components=1 && \
- chmod +x ${CMAKE_3_21_BIN_DIR}/ccmake && \
- chmod +x ${CMAKE_3_21_BIN_DIR}/cmake && \
- chmod +x ${CMAKE_3_21_BIN_DIR}/cmake-gui && \
- chmod +x ${CMAKE_3_21_BIN_DIR}/cpack && \
- chmod +x ${CMAKE_3_21_BIN_DIR}/ctest && \
- tar -xf ${CMAKE_3_20_TEMP} --directory ${CMAKE_3_20_DIR} --strip-components=1 && \
- chmod +x ${CMAKE_3_20_BIN_DIR}/ccmake && \
- chmod +x ${CMAKE_3_20_BIN_DIR}/cmake && \
- chmod +x ${CMAKE_3_20_BIN_DIR}/cmake-gui && \
- chmod +x ${CMAKE_3_20_BIN_DIR}/cpack && \
- chmod +x ${CMAKE_3_20_BIN_DIR}/ctest && \
- tar -xf ${CMAKE_3_19_TEMP} --directory ${CMAKE_3_19_DIR} --strip-components=1 && \
- chmod +x ${CMAKE_3_19_BIN_DIR}/ccmake && \
- chmod +x ${CMAKE_3_19_BIN_DIR}/cmake && \
- chmod +x ${CMAKE_3_19_BIN_DIR}/cmake-gui && \
- chmod +x ${CMAKE_3_19_BIN_DIR}/cpack && \
- chmod +x ${CMAKE_3_19_BIN_DIR}/ctest && \
- tar -xf ${CMAKE_3_18_TEMP} --directory ${CMAKE_3_18_DIR} --strip-components=1 && \
- chmod +x ${CMAKE_3_18_BIN_DIR}/ccmake && \
- chmod +x ${CMAKE_3_18_BIN_DIR}/cmake && \
- chmod +x ${CMAKE_3_18_BIN_DIR}/cmake-gui && \
- chmod +x ${CMAKE_3_18_BIN_DIR}/cpack && \
- chmod +x ${CMAKE_3_18_BIN_DIR}/ctest && \
- tar -xf ${CMAKE_3_16_TEMP} --directory ${CMAKE_3_16_DIR} --strip-components=1 && \
- chmod +x ${CMAKE_3_16_BIN_DIR}/ccmake && \
- chmod +x ${CMAKE_3_16_BIN_DIR}/cmake && \
- chmod +x ${CMAKE_3_16_BIN_DIR}/cmake-gui && \
- chmod +x ${CMAKE_3_16_BIN_DIR}/cpack && \
- chmod +x ${CMAKE_3_16_BIN_DIR}/ctest
-
-# Install default latest version
-ENV PATH="${CMAKE_3_31_BIN_DIR}:${PATH}"
-
-RUN echo "=============================================" && \
- echo $(cmake --version) && \
- echo "============================================="
-
-##################################################################
-# steam runtime and ssdk
-##################################################################
-RUN mkdir -p ${STEAM_RUNTIME_SDK_DIR}
-ADD ${STEAM_RUNTIME_SDK_URL} /tmp
-
-RUN tar -xf ${STEAM_RUNTIME_SDK_TEMP} --directory ${STEAM_RUNTIME_SDK_DIR} --strip-components=1 && \
- tree ${STEAM_RUNTIME_SDK_DIR} && \
- chmod +x ${STEAM_RUNTIME_SDK_BIN_DIR} -R && \
- chmod +x ${STEAM_RUNTIME_SDK_DIR}/setup.sh && \
- chmod +x ${STEAM_RUNTIME_SDK_DIR}/shell.sh && \
- chmod +x ${STEAM_RUNTIME_SDK_DIR}/shell-amd64.sh && \
- chmod +x ${STEAM_RUNTIME_SDK_DIR}/shell-i386.sh
-# printf '%s\n' 3 1 Y Y Y | ./setup.sh
-
-##################################################################
-# Flutter SDK
-##################################################################
-RUN mkdir -p ${FLUTTER_DIR}
-ADD ${FLUTTER_DOWNLOAD_URL} /tmp
-
-RUN tar -xf ${FLUTTER_TEMP} --directory ${FLUTTER_DIR} --strip-components=1 && \
- chmod +x ${FLUTTER_BIN_DIR}/dart && \
- chmod +x ${FLUTTER_BIN_DIR}/flutter && \
- chmod +x ${FLUTTER_BIN_DIR}/internal/shared.sh && \
- chmod +x ${FLUTTER_BIN_DIR}/internal/update_dart_sdk.sh
-
-ENV PATH="${FLUTTER_BIN_DIR}:${PATH}"
-
-RUN git config --global --add safe.directory ${FLUTTER_DIR} && \
- flutter precache && \
- flutter config --no-analytics && \
- dart --disable-analytics
-
-RUN echo "=============================================" && \
- echo dart $(dart --version) && \
- echo flutter $(flutter --version) && \
- echo "============================================="
-
-##################################################################
-# GO compillers
-##################################################################
-RUN mkdir -p ${GO_DIR} ${GO_PATH_BIN_DIR} ${GO_BIN_DIR}
-ADD ${GO_DOWNLOAD_URL} /tmp
-
-RUN tar -xzf ${GO_TEMP} --directory ${GO_DIR} --strip-components=1 && \
- chmod +x ${GO_BIN_DIR}/go && \
- chmod +x ${GO_BIN_DIR}/gofmt
-
-ENV GOROOT=${GO_DIR}
-ENV GOPATH=${GO_PATH_DIR}
-ENV PATH="${GO_BIN_DIR}:${GO_PATH_BIN_DIR}:${PATH}"
-
-RUN echo "=============================================" && \
- echo go $(go version) && \
- echo "============================================="
-
-##################################################################
-# Get NINJA binary
-##################################################################
-RUN mkdir -p ${NINJA_BIN_DIR}
-ADD ${NINJA_DOWNLOAD_URL} /tmp
-
-RUN 7zz x ${NINJA_TEMP} -o${NINJA_BIN_DIR} -y && \
- chmod +x ${NINJA_BIN_DIR}/ninja
-
-ENV PATH="${NINJA_BIN_DIR}:${PATH}"
-
-RUN echo "=============================================" && \
- echo ninja $(ninja --version) && \
- echo "============================================="
-
-##################################################################
-# deps
-##################################################################
-RUN apt-get update && \
- apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests --allow-downgrades \
- build-essential \
- autoconf-archive \
- gnu-standards \
- cmake \
- libunwind-dev \
- golang \
- at \
- autopkgtest \
- gcc-multilib \
- g++-multilib \
- libxkbcommon-dev \
- zlib1g-dev \
- libfreetype6-dev \
- libegl1-mesa-dev \
- libgles2-mesa-dev \
- libgbm-dev \
- uuid-dev \
- nvidia-cg-toolkit \
- nvidia-cg-dev \
- libavcodec-dev \
- libsdl2-dev \
- libsdl-image1.2-dev \
- libxml2-dev \
- yasm \
- devscripts \
- automake \
- libtool \
- autotools-dev \
- dpkg-dev \
- fakeroot \
- checkinstall \
- dh-make \
- zlib1g \
- zlib1g-dev \
- libssl-dev \
- libxslt-dev \
- libgd-dev \
- libpcre3-dev \
- libgeoip-dev \
- libkrb5-dev \
- libperl-dev \
- krb5-user \
- luajit \
- liblua5.1-0-dev \
- libmaxminddb-dev \
- libpam0g-dev \
- libldap2-dev \
- libavformat-dev \
- libavfilter-dev \
- libswscale-dev \
- libavcodec-dev \
- libz-dev \
- libhiredis-dev \
- libzip-dev \
- libcrypto++-dev \
- libbz2-dev \
- libvpx-dev \
- libc6 \
- libgssapi-krb5-2 \
- libstdc++6 \
- zlib1g \
- tcl
-
-##################################################################
-# docker setup
-##################################################################
-
-#Install packages
-RUN install -m 0755 -d /etc/apt/keyrings && \
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
- chmod a+r /etc/apt/keyrings/docker.asc && \
- echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble nightly" > /etc/apt/sources.list.d/docker.list && \
- echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" >> /etc/apt/sources.list.d/docker.list && \
- echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble test" >> /etc/apt/sources.list.d/docker.list && \
- apt-get update && \
- apt-get install -y --no-install-recommends --allow-unauthenticated \
- docker-ce \
- docker-ce-cli \
- containerd.io \
- docker-buildx-plugin \
- docker-compose-plugin
-
-# A better fix for TW-52939 Dockerfile build fails because of aufs
-VOLUME /var/lib/docker
-
-COPY run-docker.sh /services/run-docker.sh
-RUN chmod +x /services/run-docker.sh && \
- sync
-
-##################################################################
-# docker compose setup
-##################################################################
-COPY docker-compose-update /usr/local/bin/docker-compose-update
-RUN chmod +x /usr/local/bin/docker-compose-update && \
- sync
-
-#Try to test
-RUN docker-compose-update
-
-#Install packages
-RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \
- echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \
- curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \
- chmod +x /usr/local/bin/docker-compose && \
- docker-compose -v
-
-
-##################################################################
-# installing java11
-##################################################################
-ADD ${K_JDK_URL} /tmp
-RUN tar -xzf ${K_JDK_TEMP} --directory /usr/local && \
- ln -sfv ${JAVA_HOME} /usr/jre && \
- java -version
-
-##################################################################
-# Additional settings
-##################################################################
-ENV MAVEN_VERSION=3.9.9
-ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
-ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
-ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
-ENV MAVEN_BIN=${MAVEN_PATH}/bin
-ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
-
-ENV GRADLE_VERSION=8.13
-ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
-ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
-ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
-ENV GRADLE_BIN=${GRADLE_PATH}/bin
-ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
-
-ENV KTC_VERSION=2.1.10
-ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
-ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
-ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
-ENV KTC_PATH=${KTC_ROOT}/kotlinc
-ENV KTC_BIN=${KTC_PATH}/bin
-
-ENV KNPL_VERSION=${KTC_VERSION}
-ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
-ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
-ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
-ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
-ENV KNPL_BIN=${KNPL_PATH}/bin
-
-RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
-ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
-
-##################################################################
-# Maven
-##################################################################
-ENV MAVEN_HOME=${MAVEN_ROOT}
-ENV M2_HOME=${MAVEN_ROOT}
-
-ADD ${MAVEN_LINK} /tmp
-RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
-RUN chmod +x -R ${MAVEN_BIN}
-RUN mvn -v
-
-##################################################################
-# GRADLE
-##################################################################
-ADD ${GRADLE_LINK} /tmp
-RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
-RUN chmod +x -R ${GRADLE_BIN}
-RUN gradle -v
-
-##################################################################
-# kotlin-compiler
-##################################################################
-ADD ${KTC_LINK} /tmp
-RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
-RUN chmod +x -R ${KTC_BIN}
-RUN kotlin -version
-
-##################################################################
-# kotlin-native-prebuilt-linux
-##################################################################
-ADD ${KNPL_LINK} /tmp
-RUN tar -xzf ${KNPL_TEMP} --directory ${KTC_ROOT}
-RUN chmod +x -R ${KNPL_BIN}
-
-##################################################################
-# Android SDK
-##################################################################
-RUN apt-get update && \
- apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
- android-sdk \
- android-sdk-build-tools \
- android-sdk-platform-tools-common \
- android-sdk-platform-tools \
- adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3
-
-##################################################################
-# Activate Android SDK
-##################################################################
-RUN echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > /usr/lib/android-sdk/licenses/android-sdk-license
-
-##################################################################
-# installing dotnet
-##################################################################
-ADD ${DOTNET_INSTALL_SCRIPT_URL} /tmp
-RUN mkdir -p ${DOTNET_ROOT} && \
- chmod +x /tmp/dotnet-install.sh && \
- /tmp/dotnet-install.sh --verbose --no-path --install-dir ${DOTNET_ROOT} --channel ${DOTNET_CHANNEL} --version latest
-
-##################################################################
-# Setup $PATH
-##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
-
-##################################################################
-# Version after install
-##################################################################
-RUN echo "=============================================" && \
- echo $(dotnet --info) && \
- echo $(dotnet --list-sdks) && \
- echo $(dotnet --list-runtimes) && \
- echo "============================================="
-
-##################################################################
-# Mono
-##################################################################
-RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \
- echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
-# echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \
-# echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
- apt-get update && \
- apt-get install -y --allow-unauthenticated \
- mono-complete \
- mono-llvm-support \
- mono-devel \
- mono-dbg \
- referenceassemblies-pcl \
- ca-certificates-mono \
- mono-xsp4
-
-##################################################################
-# Node.js 22.x
-##################################################################
-RUN groupadd -g 1337 node && \
- useradd -u 1337 --gid node --shell /bin/bash --create-home node
-
-ADD ${K_NODE_URL} /tmp
-ADD ${K_NODE_HEADERS_URL} /tmp
-
-RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
- tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
- rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
-
-RUN npm install -g pnpm yarn
-
-##################################################################
-# Version after install
-##################################################################
-RUN echo "=============================================" && \
- echo node $(node --version) && \
- echo npm $(npm --version) && \
- echo yarn $(yarn --version) && \
- echo pnpm $(pnpm --version) && \
- echo "============================================="
-
-##################################################################
-# other customisations
-##################################################################
-
-##################################################################
-# Cleanup
-##################################################################
-RUN echo "clean up" && \
- apt-get clean -y && \
- apt-get autoclean -y && \
- rm -rfv /var/lib/apt/lists/* && \
- rm -rfv /var/cache/apt/archives/*.deb && \
- rm -rfv /root/tmp/* && \
- rm -rfv /tmp/*
-
-RUN updatedb
diff --git a/linux/advanced/vscode-server/devops/docker-compose-update b/linux/advanced/vscode-server/devops/docker-compose-update
deleted file mode 100755
index 1a43d1c9b..000000000
--- a/linux/advanced/vscode-server/devops/docker-compose-update
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-export DOCKER_COMPOSE_REMOTE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r`
-
-export DOCKER_COMPOSE_LOCAL_VERSION=`docker-compose -v`
-
-export DOCKER_COMPOSE_BIN=/usr/local/bin/docker-compose
-
-if [ -f $DOCKER_COMPOSE_BIN ]; then
- echo "========================================================================================"
- echo "The file '$DOCKER_COMPOSE_BIN' exists."
- echo "========================================================================================"
- echo "Local Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}"
- echo "========================================================================================"
-else
- echo "========================================================================================"
- echo "The file '$DOCKER_COMPOSE_BIN' in not found. Installing..."
- echo "========================================================================================"
-fi
-
-echo "========================================================================================"
-echo "Latest Docker Compose version is: ${DOCKER_COMPOSE_REMOTE_VERSION}"
-echo "========================================================================================"
-
-
-echo "========================================================================================"
-echo "Installing remote version:"
-echo "========================================================================================"
-curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_REMOTE_VERSION}/docker-compose-Linux-x86_64 -o $DOCKER_COMPOSE_BIN
-
-echo "========================================================================================"
-echo "Setting up permissions..."
-echo "========================================================================================"
-chmod +x $DOCKER_COMPOSE_BIN
-
-
-echo "========================================================================================"
-echo "Updated Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}"
-echo "========================================================================================"
diff --git a/linux/advanced/vscode-server/devops/docker-compose.yml b/linux/advanced/vscode-server/devops/docker-compose.yml
deleted file mode 100644
index 6afe677dc..000000000
--- a/linux/advanced/vscode-server/devops/docker-compose.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-services:
- app:
- image: "quay.io/epicmorg/vscode-server:devops"
- build:
- context: .
diff --git a/linux/advanced/vscode-server/devops/run-docker.sh b/linux/advanced/vscode-server/devops/run-docker.sh
deleted file mode 100755
index 41b5e68e5..000000000
--- a/linux/advanced/vscode-server/devops/run-docker.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-if [ "$DOCKER_IN_DOCKER" = "start" ] ; then
- rm /var/run/docker.pid 2>/dev/null
- service docker start
- echo "Docker daemon started"
-fi
diff --git a/linux/advanced/vscode-server/docker/Dockerfile b/linux/advanced/vscode-server/docker/Dockerfile
index ee246a44b..934b22e91 100644
--- a/linux/advanced/vscode-server/docker/Dockerfile
+++ b/linux/advanced/vscode-server/docker/Dockerfile
@@ -12,47 +12,55 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BuildDocker true
##################################################################
-# docker setup
+# OCI setup: Buildah, Podman, Kaniko, Docker
##################################################################
-
-#Install packages
+# https://docs.docker.com/build/architecture/#install-buildx
RUN install -m 0755 -d /etc/apt/keyrings && \
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && \
+ curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && \
chmod a+r /etc/apt/keyrings/docker.asc && \
- echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble nightly" > /etc/apt/sources.list.d/docker.list && \
- echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" >> /etc/apt/sources.list.d/docker.list && \
- echo "deb [signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble test" >> /etc/apt/sources.list.d/docker.list && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable nightly" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
apt-get install -y --no-install-recommends --allow-unauthenticated \
- docker-ce \
- docker-ce-cli \
- containerd.io \
- docker-buildx-plugin \
- docker-compose-plugin
-
-# A better fix for TW-52939 Dockerfile build fails because of aufs
-VOLUME /var/lib/docker
-
-COPY run-docker.sh /services/run-docker.sh
-RUN chmod +x /services/run-docker.sh && \
- sync
-
-##################################################################
-# docker compose setup
-##################################################################
-COPY docker-compose-update /usr/local/bin/docker-compose-update
-RUN chmod +x /usr/local/bin/docker-compose-update && \
- sync
-
-#Try to test
-RUN docker-compose-update
-
-#Install packages
-RUN export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \
+ supervisor \
+ docker-ce \
+ docker-ce-cli \
+ containerd.io \
+ docker-buildx-plugin \
+ docker-compose-plugin \
+ containerd.io \
+ buildah \
+ podman \
+ podman-compose \
+ fuse-overlayfs && \
+ pip3 install --break-system-packages --no-cache-dir \
+ kaniko-wrapper \
+ buildah-wrapper && \
+ systemctl disable docker && \
+ systemctl disable podman && \
+ rm -rf /bin/docker-compose && \
+ rm -rf /sbin/docker-compose && \
+ rm -rf /usr/bin/docker-compose && \
+ rm -rf /usr/sbin/docker-compose && \
+ rm -rf /usr/local/bin/docker-compose && \
+ rm -rf /usr/local/sbin/docker-compose && \
+ export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \
echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \
curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose && \
- docker-compose -v
+# cleanup
+ apt-get clean -y && \
+ apt-get clean all -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+ENV BUILDAH_FORMAT=docker
+ENV BUILDAH_ISOLATION=docker
+ENV DOCKER_HOST="unix:///var/run/docker.sock"
+ENV PODMAN_HOST="unix:///var/run/docker.sock"
+
+COPY etc/ /etc/
##################################################################
# Cleanup
@@ -65,4 +73,7 @@ RUN echo "clean up" && \
rm -rfv /root/tmp/* && \
rm -rfv /tmp/*
+# A better fix for TW-52939 Dockerfile build fails because of aufs
+VOLUME ["/var/lib/docker", "/var/lib/containers", "/var/tmp", "/var/log/supervisor"]
+
RUN updatedb
diff --git a/linux/advanced/vscode-server/docker/Makefile b/linux/advanced/vscode-server/docker/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/docker/Makefile
+++ b/linux/advanced/vscode-server/docker/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/docker/docker-compose-update b/linux/advanced/vscode-server/docker/docker-compose-update
deleted file mode 100755
index 1a43d1c9b..000000000
--- a/linux/advanced/vscode-server/docker/docker-compose-update
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-export DOCKER_COMPOSE_REMOTE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r`
-
-export DOCKER_COMPOSE_LOCAL_VERSION=`docker-compose -v`
-
-export DOCKER_COMPOSE_BIN=/usr/local/bin/docker-compose
-
-if [ -f $DOCKER_COMPOSE_BIN ]; then
- echo "========================================================================================"
- echo "The file '$DOCKER_COMPOSE_BIN' exists."
- echo "========================================================================================"
- echo "Local Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}"
- echo "========================================================================================"
-else
- echo "========================================================================================"
- echo "The file '$DOCKER_COMPOSE_BIN' in not found. Installing..."
- echo "========================================================================================"
-fi
-
-echo "========================================================================================"
-echo "Latest Docker Compose version is: ${DOCKER_COMPOSE_REMOTE_VERSION}"
-echo "========================================================================================"
-
-
-echo "========================================================================================"
-echo "Installing remote version:"
-echo "========================================================================================"
-curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_REMOTE_VERSION}/docker-compose-Linux-x86_64 -o $DOCKER_COMPOSE_BIN
-
-echo "========================================================================================"
-echo "Setting up permissions..."
-echo "========================================================================================"
-chmod +x $DOCKER_COMPOSE_BIN
-
-
-echo "========================================================================================"
-echo "Updated Docker Compose version is: ${DOCKER_COMPOSE_LOCAL_VERSION}"
-echo "========================================================================================"
diff --git a/linux/advanced/vscode-server/docker/etc/containers/registries.conf b/linux/advanced/vscode-server/docker/etc/containers/registries.conf
new file mode 100644
index 000000000..681592e4a
--- /dev/null
+++ b/linux/advanced/vscode-server/docker/etc/containers/registries.conf
@@ -0,0 +1,79 @@
+# For more information on this configuration file, see containers-registries.conf(5).
+#
+# NOTE: RISK OF USING UNQUALIFIED IMAGE NAMES
+# We recommend always using fully qualified image names including the registry
+# server (full dns name), namespace, image name, and tag
+# (e.g., registry.redhat.io/ubi8/ubi:latest). Pulling by digest (i.e.,
+# quay.io/repository/name@digest) further eliminates the ambiguity of tags.
+# When using short names, there is always an inherent risk that the image being
+# pulled could be spoofed. For example, a user wants to pull an image named
+# `foobar` from a registry and expects it to come from myregistry.com. If
+# myregistry.com is not first in the search list, an attacker could place a
+# different `foobar` image at a registry earlier in the search list. The user
+# would accidentally pull and run the attacker's image and code rather than the
+# intended content. We recommend only adding registries which are completely
+# trusted (i.e., registries which don't allow unknown or anonymous users to
+# create accounts with arbitrary names). This will prevent an image from being
+# spoofed, squatted or otherwise made insecure. If it is necessary to use one
+# of these registries, it should be added at the end of the list.
+#
+# # An array of host[:port] registries to try when pulling an unqualified image, in order.
+# unqualified-search-registries = ["example.com"]
+#
+# [[registry]]
+# # The "prefix" field is used to choose the relevant [[registry]] TOML table;
+# # (only) the TOML table with the longest match for the input image name
+# # (taking into account namespace/repo/tag/digest separators) is used.
+# #
+# # The prefix can also be of the form: *.example.com for wildcard subdomain
+# # matching.
+# #
+# # If the prefix field is missing, it defaults to be the same as the "location" field.
+# prefix = "example.com/foo"
+#
+# # If true, unencrypted HTTP as well as TLS connections with untrusted
+# # certificates are allowed.
+# insecure = false
+#
+# # If true, pulling images with matching names is forbidden.
+# blocked = false
+#
+# # The physical location of the "prefix"-rooted namespace.
+# #
+# # By default, this is equal to "prefix" (in which case "prefix" can be omitted
+# # and the [[registry]] TOML table can only specify "location").
+# #
+# # Example: Given
+# # prefix = "example.com/foo"
+# # location = "internal-registry-for-example.net/bar"
+# # requests for the image example.com/foo/myimage:latest will actually work with the
+# # internal-registry-for-example.net/bar/myimage:latest image.
+#
+# # The location can be empty iff prefix is in a
+# # wildcarded format: "*.example.com". In this case, the input reference will
+# # be used as-is without any rewrite.
+# location = internal-registry-for-example.com/bar"
+#
+# # (Possibly-partial) mirrors for the "prefix"-rooted namespace.
+# #
+# # The mirrors are attempted in the specified order; the first one that can be
+# # contacted and contains the image will be used (and if none of the mirrors contains the image,
+# # the primary location specified by the "registry.location" field, or using the unmodified
+# # user-specified reference, is tried last).
+# #
+# # Each TOML table in the "mirror" array can contain the following fields, with the same semantics
+# # as if specified in the [[registry]] TOML table directly:
+# # - location
+# # - insecure
+# [[registry.mirror]]
+# location = "example-mirror-0.local/mirror-for-foo"
+# [[registry.mirror]]
+# location = "example-mirror-1.local/mirrors/foo"
+# insecure = true
+# # Given the above, a pull of example.com/foo/image:latest will try:
+# # 1. example-mirror-0.local/mirror-for-foo/image:latest
+# # 2. example-mirror-1.local/mirrors/foo/image:latest
+# # 3. internal-registry-for-example.net/bar/image:latest
+# # in order, and use the first one that exists.
+
+unqualified-search-registries = ["docker.io"]
diff --git a/linux/advanced/vscode-server/docker/etc/containers/storage.conf b/linux/advanced/vscode-server/docker/etc/containers/storage.conf
new file mode 100644
index 000000000..edb86fb1d
--- /dev/null
+++ b/linux/advanced/vscode-server/docker/etc/containers/storage.conf
@@ -0,0 +1,8 @@
+[storage]
+driver = "overlay"
+runroot = "/run/containers/storage"
+graphroot = "/var/lib/containers/storage"
+#rootless_storage_path = "$HOME/.local/share/containers/storage"
+
+[storage.options.overlay]
+mount_program = "/usr/bin/fuse-overlayfs"
diff --git a/linux/advanced/vscode-server/docker/etc/supervisor/conf.d/docker-service.conf b/linux/advanced/vscode-server/docker/etc/supervisor/conf.d/docker-service.conf
new file mode 100644
index 000000000..faaafcaf4
--- /dev/null
+++ b/linux/advanced/vscode-server/docker/etc/supervisor/conf.d/docker-service.conf
@@ -0,0 +1,13 @@
+[program:dockerd]
+command=/usr/bin/dockerd --host unix:///var/run/docker.sock --experimental --iptables=false --bridge=none --log-level=warn
+autostart=true
+autorestart=true
+killasgroup=true
+stopasgroup=true
+stdout_logfile=/var/log/supervisor/dockerd.out.log
+stdout_logfile_maxbytes=128MB
+stderr_logfile=/var/log/supervisor/dockerd.err.log
+stderr_logfile_maxbytes=128MB
+user=root
+priority=1
+startretries=5
diff --git a/linux/advanced/vscode-server/docker/etc/supervisor/conf.d/supervisord.conf b/linux/advanced/vscode-server/docker/etc/supervisor/conf.d/supervisord.conf
new file mode 100644
index 000000000..591277381
--- /dev/null
+++ b/linux/advanced/vscode-server/docker/etc/supervisor/conf.d/supervisord.conf
@@ -0,0 +1,5 @@
+[supervisord]
+nodaemon=true
+
+#[inet_http_server]
+#port = 1337
diff --git a/linux/advanced/vscode-server/dotnet-full/Dockerfile b/linux/advanced/vscode-server/dotnet-full/Dockerfile
index c7569fd6c..5b1359f11 100644
--- a/linux/advanced/vscode-server/dotnet-full/Dockerfile
+++ b/linux/advanced/vscode-server/dotnet-full/Dockerfile
@@ -14,30 +14,14 @@ ENV BuildDocker true
##################################################################
# dotnet setup
##################################################################
-ENV DOTNET_CHANNEL=LTS
+ENV DOTNET_CHANNEL=STS
ENV DOTNET_ROOT=${EMG_LOCAL_BASE_DIR}/dotnet/${DOTNET_CHANNEL}
ARG DOTNET_TOOLS_DIR=${DOTNET_ROOT}/tools
ARG DOTNET_INSTALL_DIR=${DOTNET_ROOT}
ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh
-# Opt out of the telemetry feature
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
-# Disable first time experience
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-# Configure Kestrel web server to bind to port 80 when present
-ENV ASPNETCORE_URLS=\
-# Enable detection of running in a container
-ENV DOTNET_RUNNING_IN_CONTAINER=true
-# Enable correct mode for dotnet watch (only mode supported in a container)
-ENV DOTNET_USE_POLLING_FILE_WATCHER=true
-# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance
-ENV NUGET_XMLDOC_MODE=skip
-# unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359]
-ENV CLR_OPENSSL_VERSION_OVERRIDE=45
-# PowerShell telemetry for docker image usage
-ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-20.04
-
-RUN mkdir -p /usr/share/dotnet/host/fxr
##################################################################
# installing dotnet
@@ -65,9 +49,9 @@ RUN echo "=============================================" && \
# Mono
##################################################################
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \
- echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
+# echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
# echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \
-# echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
+ echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
apt-get update && \
apt-get install -y --allow-unauthenticated \
mono-complete \
diff --git a/linux/advanced/vscode-server/dotnet-full/Makefile b/linux/advanced/vscode-server/dotnet-full/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/dotnet-full/Makefile
+++ b/linux/advanced/vscode-server/dotnet-full/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/dotnet/Dockerfile b/linux/advanced/vscode-server/dotnet/Dockerfile
index ae445cdc3..53829e0a5 100644
--- a/linux/advanced/vscode-server/dotnet/Dockerfile
+++ b/linux/advanced/vscode-server/dotnet/Dockerfile
@@ -14,31 +14,14 @@ ENV BuildDocker true
##################################################################
# dotnet setup
##################################################################
-ENV DOTNET_CHANNEL=LTS
+ENV DOTNET_CHANNEL=STS
ENV DOTNET_ROOT=${EMG_LOCAL_BASE_DIR}/dotnet/${DOTNET_CHANNEL}
ARG DOTNET_TOOLS_DIR=${DOTNET_ROOT}/tools
ARG DOTNET_INSTALL_DIR=${DOTNET_ROOT}
ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh
-# Opt out of the telemetry feature
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
-# Disable first time experience
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-# Configure Kestrel web server to bind to port 80 when present
-ENV ASPNETCORE_URLS=\
-# Enable detection of running in a container
-ENV DOTNET_RUNNING_IN_CONTAINER=true
-# Enable correct mode for dotnet watch (only mode supported in a container)
-ENV DOTNET_USE_POLLING_FILE_WATCHER=true
-# Skip extraction of XML docs - generally not useful within an image/container - helps perfomance
-ENV NUGET_XMLDOC_MODE=skip
-# unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359]
-ENV CLR_OPENSSL_VERSION_OVERRIDE=45
-# PowerShell telemetry for docker image usage
-ENV POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-20.04
-
-
-RUN mkdir -p /usr/share/dotnet/host/fxr
##################################################################
# installing dotnet
diff --git a/linux/advanced/vscode-server/dotnet/Makefile b/linux/advanced/vscode-server/dotnet/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/dotnet/Makefile
+++ b/linux/advanced/vscode-server/dotnet/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/latest/Dockerfile b/linux/advanced/vscode-server/latest/Dockerfile
index 27e991196..4841f473a 100644
--- a/linux/advanced/vscode-server/latest/Dockerfile
+++ b/linux/advanced/vscode-server/latest/Dockerfile
@@ -78,13 +78,6 @@ ENV GOSU_VERSION=1.17
ARG GOSU_BIN_DIR=${EMG_LOCAL_BASE_DIR}/gosu/${GOSU_VERSION}/bin
ARG GOSU_DOWNLOAD_URL=https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64
-ENV FLUTTER_VERSION=3.29.2
-ENV FLUTTER_CHANNEL=stable
-ENV FLUTTER_DIR=${EMG_LOCAL_BASE_DIR}/flutter/${FLUTTER_VERSION}
-ARG FLUTTER_BIN_DIR=${FLUTTER_DIR}/bin
-ARG FLUTTER_DOWNLOAD_URL=https://storage.googleapis.com/flutter_infra_release/releases/${FLUTTER_CHANNEL}/linux/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz
-ARG FLUTTER_TEMP=/tmp/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz
-
ENV BuildDocker true
##################################################################
@@ -117,6 +110,9 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio
bash \
binutils \
ca-certificates \
+ python3 \
+ python3-pip \
+ python3-dev \
cmatrix \
cmatrix-xfont \
console-cyrillic \
@@ -217,30 +213,6 @@ RUN echo "=============================================" && \
echo 7z $(7z | head -4) && \
echo "============================================="
-##################################################################
-# Flutter SDK
-##################################################################
-RUN mkdir -p ${FLUTTER_DIR}
-ADD ${FLUTTER_DOWNLOAD_URL} /tmp
-
-RUN tar -xf ${FLUTTER_TEMP} --directory ${FLUTTER_DIR} --strip-components=1 && \
- chmod +x ${FLUTTER_BIN_DIR}/dart && \
- chmod +x ${FLUTTER_BIN_DIR}/flutter && \
- chmod +x ${FLUTTER_BIN_DIR}/internal/shared.sh && \
- chmod +x ${FLUTTER_BIN_DIR}/internal/update_dart_sdk.sh
-
-ENV PATH="${FLUTTER_BIN_DIR}:${PATH}"
-
-RUN git config --global --add safe.directory ${FLUTTER_DIR} && \
- flutter precache && \
- flutter config --no-analytics && \
- dart --disable-analytics
-
-RUN echo "=============================================" && \
- echo dart $(dart --version) && \
- echo flutter $(flutter --version) && \
- echo "============================================="
-
##################################################################
# Install LazyGit official binary
##################################################################
diff --git a/linux/advanced/vscode-server/mono/Dockerfile b/linux/advanced/vscode-server/mono/Dockerfile
index 9540bfbd6..07d0202b8 100644
--- a/linux/advanced/vscode-server/mono/Dockerfile
+++ b/linux/advanced/vscode-server/mono/Dockerfile
@@ -15,9 +15,9 @@ ENV BuildDocker true
# Mono
##################################################################
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \
- echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
+# echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
# echo "deb https://download.mono-project.com/repo/ubuntu nightly-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \
-# echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
+ echo "deb https://download.mono-project.com/repo/ubuntu preview-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
apt-get update && \
apt-get install -y --allow-unauthenticated \
mono-complete \
diff --git a/linux/advanced/vscode-server/mono/Makefile b/linux/advanced/vscode-server/mono/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/mono/Makefile
+++ b/linux/advanced/vscode-server/mono/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/vscode-server/nodejs/Makefile b/linux/advanced/vscode-server/nodejs/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/nodejs/Makefile
+++ b/linux/advanced/vscode-server/nodejs/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt
new file mode 100644
index 000000000..3e868398d
--- /dev/null
+++ b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEEzCCAvugAwIBAgIUfigpDYicmN8hCXwWg9sHF17jVQ0wDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MTlaFw0zNDA1MzAxMjQ3MTlaMIGY
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEZMBcGA1UECwwQRXBpY01vcmcgUm9vdCBDQTEaMBgGA1UE
+AwwRRXBpY00ub3JnIFJvb3QgQ0ExIjAgBgkqhkiG9w0BCQEWE2RldmVsb3BlckBl
+cGljbS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCU7/vFW4dm
+atoZWEhtFwJ8WhBTWAx0fJzON9kzOM6YIvcu6/gpj++0j9d3hsg4VsTLjqeyRhYN
+ts3b71CaW96OHZ+X4GFE87p2dOoBvzCE9iM+WqHJZzjf4Oa2hK/oiQtsbU+q66lw
+eASPYRl5AU3gm7bzOLlpEvmabSzowdAU8qLBgrqJkdZf4ZjAcLfOvrVk8WaiUH3J
+D19newfGu9LIH76LzOu+w48C+nYqUsHtnxVstQgxFdSGuul2UTqK/Xv+IOwR3tXt
+WOhId6rGHxyXXM8Q+3jXcNWLLmGYecPoyQ4v3FNnecQzU76sx5h4Zf6oRA6crdya
+3tHoPQqa+td3AgMBAAGjUzBRMB0GA1UdDgQWBBRyeMxzrQllpfSaruwHSo9HEJYE
+/zAfBgNVHSMEGDAWgBRyeMxzrQllpfSaruwHSo9HEJYE/zAPBgNVHRMBAf8EBTAD
+AQH/MA0GCSqGSIb3DQEBDQUAA4IBAQAXqf8kQqSmFVgRQ9EbwCDzHkjPZq0o7lkU
+fZiH6/fshMG63lOLirLYXzQhfkkX2Gm671wAATpyj4GHzaf4+BPxn+1XdqGDV+AP
+V6EqKNF5lixdEm9KsSlztQ5+7cN7noLbhfHGFm1ExLdLJi4fY0EgX60ACkwttfkb
+OCTSXGK6JHXWE2hGWKhANyFjC62oFWdaptTlLDiSLLjtrMfs7c9Ng+HUh0mMwejS
+p2/4a3P0OFbLq/2TnHNTdYSDNM/oilhf0crebElUCYHir1HQF74Sh6G3ut8OO95J
+qw2J44n6YPr8LwL4lGCj8+okUvwPqC305zpBjP6c1ztmxQ8+dCKZ
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt
new file mode 100644
index 000000000..8aa93749d
--- /dev/null
+++ b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIETzCCAzegAwIBAgIUFGpH3osZ3jzR99AL4v3ljyQWtLUwDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MjBaFw0zNDA1MzAxMjQ3MjBaMIGv
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEeMBwGA1UECwwVRXBpY01vcmcgQ29kZSBTaWduaW5nMSww
+KgYDVQQDDCNFcGljTS5vcmcgSW50ZXJtZWRpYXRlIENvZGUgU2lnbmluZzEiMCAG
+CSqGSIb3DQEJARYTZGV2ZWxvcGVyQGVwaWNtLm9yZzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAL+Vm2ZwT27KenCyMEujAlmp0c92rCOu3QB/Ji8YR5Fh
+EgacatKRQ8kbZfb+uNK8s25oZlYlYd7VxdRp+rwGAjSKjxZ3SoQUj+gt7dGKhgNo
+TADMO+17ZC7KS+El4l2esjL4wWSVWT2axnwCbytpe0HG0bfAW3PktSc4X5w+5eoK
+YIQ7o00Yp+7tw6MDefQJDjDvigr1BizlCcF3WmygRAP8X+2/gHzzQ2AWqykQ9Vdv
+4KPavcCpg7j8rHE4cK2lbET/4vYlexe6GreG6TRvlxntY3BxsERkq8uG5MjriIBl
+Z1KKAoGr/0PSjMbqzlzLr0hLeIMZ3JU5AUrIWOZe7iMCAwEAAaN4MHYwHwYDVR0j
+BBgwFoAUcnjMc60JZaX0mq7sB0qPRxCWBP8wDwYDVR0TBAgwBgEB/wIBADAOBgNV
+HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFPnuujuW
+Y60YVHIXpUV15ioUXU3bMA0GCSqGSIb3DQEBDQUAA4IBAQAJvXBYLcPV6TV0cYt7
+KqQ/d7+BPqE5dHYYNKRGQLrZY05ceVDDAnQoiTO7R6zT75I34D0RjcWbBFcJsfas
+gvzgjqEItN7cm051kkthGYFIfASN07n89YqUeQpqQ5tg5MEqNBbNAlTgazgwlMFV
+sSh3hZLmeUW6phvU89VineF+IPTEhHWcvoYfmwd4rW0JSEImbr6QmJ8dhw0DSocW
+HSSpST9Mk6zEswBbs9Pvpgdewy+DkvApD7bPlfy/8jctAKk2R43jw8XTxWy07phE
++po13WQCC94Ydb2MBh0U6gwTPe+/QAS90IpvhjlDQWWJtaZKNQIHMh9qdrZU/fK1
+pzZh
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/intermediateCA_https.crt b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/intermediateCA_https.crt
new file mode 100644
index 000000000..f0e7d4027
--- /dev/null
+++ b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/intermediateCA_https.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEQTCCAymgAwIBAgIUFGpH3osZ3jzR99AL4v3ljyQWtLYwDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MjBaFw0zNDA1MzAxMjQ3MjBaMIGh
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEXMBUGA1UECwwORXBpY01vcmcgSFRUUFMxJTAjBgNVBAMM
+HEVwaWNNLm9yZyBJbnRlcm1lZGlhdGUgSFRUUFMxIjAgBgkqhkiG9w0BCQEWE2Rl
+dmVsb3BlckBlcGljbS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCziMvV2TQ7FRp3SG8ArOre4e34alHUxF7pUFVchMJpEWa6AVFtkPvFs/Zm/KcY
+FLxsI8c4UT21lkH6Np1zr8ZUYF/QG32WZTEpeGL3FKI5WO83bSkuaRSGYm9lQ932
+/t+oQ36B+JpLcmnEPr79I4fwU2BG+Yr+1McWqpwOaM10c+2QcXFMUWszno8kxdUG
+ixjbxrGGoNJxW+zBhXpC1PBiK5whBe5p/u4cn7i4f8ANTmKd4jn0NSN4K5gnP03J
+Wf+ePbbyaXMj4YWamlTMWOFDID9xJHwYaYF8bDVR7cUPKRGJe5D6mc8JcnO8+WHJ
+GsvCkRZEA44OEArpXVNwMTgZAgMBAAGjeDB2MB8GA1UdIwQYMBaAFHJ4zHOtCWWl
+9Jqu7AdKj0cQlgT/MA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMG
+A1UdJQQMMAoGCCsGAQUFBwMBMB0GA1UdDgQWBBTyIWWlrsX5gyd+pGFmYzZVnbXg
+GzANBgkqhkiG9w0BAQ0FAAOCAQEAdMkjh0fJI+S1u5efCu0LiwM8SaMz0E8OuaAY
+7MNLUu1NeiVqPyxYIxr25OnBzDwTIdsoMNHcgQB+aQFWLH6LFRgheBn6ywqIm/zJ
+l3+1tLJhj/NJEI7o0eLDjGwKKoSloj8QdpMc+PIQENQVlwNm1zdHBDQfclAL2t1n
+UpLfYrt7Hjta++ZI+8JAgqBb3yijI6fu8KRCQU5SpwEV/ifdFWsPjh68oQFnQafQ
+WyiKsy4EPPkCChMI/vD/PTImwes8obyGHD/CshNFvxVnmqNq2o9r5wl6udLMC5NF
+fpCbO1B5Sm6SwBhpOAWfaD2SoVP1d0MKCroATB88vpZUCFoaVw==
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt
new file mode 100644
index 000000000..1fbc4a47e
--- /dev/null
+++ b/linux/advanced/zabbix/5.0/snmptraps/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG6DCCBNCgAwIBAgICEAUwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjQwNzE1MTI1MDQxWhcNMjkwNzE5MTI1MDQxWjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1j0rkZECOt1S8o7I
+JY+4YKAxuEa5xaHKHXT2EpkuC/0krqMOjUy2oPIRNgR5g8X0Jl6jamxeGLc4Q1tf
+ju6or9oSRYThIUhRsFDQNBiBBEXoBgWxTfiKB2eyT97+pz5TBtBiRCPaLGRHYLRb
+9Jz2HkJlxbtNPjtDrF5DPHym+mZ1M1z3hIQYAqJwLpsEBnsw/VxWMlxqHoeewd0h
+uJMd71KQ5vOKlz7KrIZ6EobNNa6wItuvsfj3kYCK7O78uLHGXXFxdr8Hae9lMUmC
+8F7AFwa+bO1LRlTlqW7rE3rLf+jj70N01N8T3o22v14YBaFBWQWncAVYD2JuL3tH
+252+kdNOERf1fLbLRigJAbd+hOhWYlNf963TFDgnNPliHNIW72SygVBnI2V3JwO1
+dp1hVKpK/zt8ziGdHW4gmOLTsH50YKdR4jNqUgQv4wASlKn9OpN6zHYc5G8h86fY
+BM+zxE5ikGI+I/vIqBuI0eaDU92AWN/YjFLpu8tMu9kLRSCf1vug6FIfDPWVo7iP
+ac/SI2v8jnnpaW7ph/Pz3WkzaG7ZZJsfFs+8dploWc6LOoDtbFBhMdGMxu024msC
+0PSjZb5ODXPIaO2NsA7fMiAtZcoK6anTUJh4zOP/stA9qsJGNxdrEmiPXSmBZY/N
+Y0wkZgZ6JTDhw7038bPvctkblJkCAwEAAaOCAYswggGHMB0GA1UdDgQWBBR3Pdk5
+r0K93FvKduru/c4+YSkwXzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qws
+hzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADCBmAYIKwYBBQUH
+AQEEgYswgYgwQAYIKwYBBQUHMAKGNGh0dHA6Ly9udWMtY2RwLnZvc2tob2QucnUv
+Y2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQwRAYIKwYBBQUHMAKGOGh0dHA6Ly9u
+dWMtY2RwLmRpZ2l0YWwuZ292LnJ1L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3J0
+MIGFBgNVHR8EfjB8MDqgOKA2hjRodHRwOi8vbnVjLWNkcC52b3NraG9kLnJ1L2Nk
+cC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMD6gPKA6hjhodHRwOi8vbnVjLWNkcC5k
+aWdpdGFsLmdvdi5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG
+9w0BAQsFAAOCAgEAmsINXtQ7wwUWvIeOr80MdJS/5G4xhyZOVEmeUorThquT672y
+cCg3XCxc4fwbiZqSSbBqntQ7RtiTAKMYMvBageKoVHbzz+R4jX01tKcTx8cDePrz
+dJ73bLNUorE7RU9QsW4KyiUeRmjMDV23AUlEvuQFTwgkHXvbac1BBdPn9CrssQuF
+5EGohZKcQPFiAAc4SHbRNhlr7uAwgpc/erzI9EAcvA6BVAXcVKoeGpV01uexUgZ6
+St5RP9UmDWNA7T4yVXWJ233N0Q8bl+6AswINQ3PosPu6yQQHQjr65YS06epK+AeI
+6j+oGR4xI7EhTQhQvaobnGmX/8QQ7XDRYCP2HXYxiffnn/CfZ/BVyKLYeY1ZipjE
+nzqdQIC2+Q3WtY8jsVRQMP38WFRmtsIt5snehnPTs5bKGVIcYzj3o3Ex/K7agEz0
+zAJ0JR5ivXZOvNkT0g9x1v+S1IkU3e/nX1a+tpRquMtnHX0L2lXArNHUbaOO9EJt
+d57WaIpofV5cVhhwShOgAuBc9UMJF3/n4t4RKiPxtsK8P67gcmphMhslj7AMYrYM
+ej2NvQZY4m3ub3CPC/PrTjDONvb+8g5xrKtxBjYqC74HSB4dg9G3WimSDUuP2Su6
+G2y2TUeyJuCvCLz289VoO0vg7cNdMobE3KCqAiiNhN2VBFxHAUKmUoRcRdw=
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt
new file mode 100644
index 000000000..3e868398d
--- /dev/null
+++ b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEEzCCAvugAwIBAgIUfigpDYicmN8hCXwWg9sHF17jVQ0wDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MTlaFw0zNDA1MzAxMjQ3MTlaMIGY
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEZMBcGA1UECwwQRXBpY01vcmcgUm9vdCBDQTEaMBgGA1UE
+AwwRRXBpY00ub3JnIFJvb3QgQ0ExIjAgBgkqhkiG9w0BCQEWE2RldmVsb3BlckBl
+cGljbS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCU7/vFW4dm
+atoZWEhtFwJ8WhBTWAx0fJzON9kzOM6YIvcu6/gpj++0j9d3hsg4VsTLjqeyRhYN
+ts3b71CaW96OHZ+X4GFE87p2dOoBvzCE9iM+WqHJZzjf4Oa2hK/oiQtsbU+q66lw
+eASPYRl5AU3gm7bzOLlpEvmabSzowdAU8qLBgrqJkdZf4ZjAcLfOvrVk8WaiUH3J
+D19newfGu9LIH76LzOu+w48C+nYqUsHtnxVstQgxFdSGuul2UTqK/Xv+IOwR3tXt
+WOhId6rGHxyXXM8Q+3jXcNWLLmGYecPoyQ4v3FNnecQzU76sx5h4Zf6oRA6crdya
+3tHoPQqa+td3AgMBAAGjUzBRMB0GA1UdDgQWBBRyeMxzrQllpfSaruwHSo9HEJYE
+/zAfBgNVHSMEGDAWgBRyeMxzrQllpfSaruwHSo9HEJYE/zAPBgNVHRMBAf8EBTAD
+AQH/MA0GCSqGSIb3DQEBDQUAA4IBAQAXqf8kQqSmFVgRQ9EbwCDzHkjPZq0o7lkU
+fZiH6/fshMG63lOLirLYXzQhfkkX2Gm671wAATpyj4GHzaf4+BPxn+1XdqGDV+AP
+V6EqKNF5lixdEm9KsSlztQ5+7cN7noLbhfHGFm1ExLdLJi4fY0EgX60ACkwttfkb
+OCTSXGK6JHXWE2hGWKhANyFjC62oFWdaptTlLDiSLLjtrMfs7c9Ng+HUh0mMwejS
+p2/4a3P0OFbLq/2TnHNTdYSDNM/oilhf0crebElUCYHir1HQF74Sh6G3ut8OO95J
+qw2J44n6YPr8LwL4lGCj8+okUvwPqC305zpBjP6c1ztmxQ8+dCKZ
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt
new file mode 100644
index 000000000..8aa93749d
--- /dev/null
+++ b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIETzCCAzegAwIBAgIUFGpH3osZ3jzR99AL4v3ljyQWtLUwDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MjBaFw0zNDA1MzAxMjQ3MjBaMIGv
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEeMBwGA1UECwwVRXBpY01vcmcgQ29kZSBTaWduaW5nMSww
+KgYDVQQDDCNFcGljTS5vcmcgSW50ZXJtZWRpYXRlIENvZGUgU2lnbmluZzEiMCAG
+CSqGSIb3DQEJARYTZGV2ZWxvcGVyQGVwaWNtLm9yZzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAL+Vm2ZwT27KenCyMEujAlmp0c92rCOu3QB/Ji8YR5Fh
+EgacatKRQ8kbZfb+uNK8s25oZlYlYd7VxdRp+rwGAjSKjxZ3SoQUj+gt7dGKhgNo
+TADMO+17ZC7KS+El4l2esjL4wWSVWT2axnwCbytpe0HG0bfAW3PktSc4X5w+5eoK
+YIQ7o00Yp+7tw6MDefQJDjDvigr1BizlCcF3WmygRAP8X+2/gHzzQ2AWqykQ9Vdv
+4KPavcCpg7j8rHE4cK2lbET/4vYlexe6GreG6TRvlxntY3BxsERkq8uG5MjriIBl
+Z1KKAoGr/0PSjMbqzlzLr0hLeIMZ3JU5AUrIWOZe7iMCAwEAAaN4MHYwHwYDVR0j
+BBgwFoAUcnjMc60JZaX0mq7sB0qPRxCWBP8wDwYDVR0TBAgwBgEB/wIBADAOBgNV
+HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFPnuujuW
+Y60YVHIXpUV15ioUXU3bMA0GCSqGSIb3DQEBDQUAA4IBAQAJvXBYLcPV6TV0cYt7
+KqQ/d7+BPqE5dHYYNKRGQLrZY05ceVDDAnQoiTO7R6zT75I34D0RjcWbBFcJsfas
+gvzgjqEItN7cm051kkthGYFIfASN07n89YqUeQpqQ5tg5MEqNBbNAlTgazgwlMFV
+sSh3hZLmeUW6phvU89VineF+IPTEhHWcvoYfmwd4rW0JSEImbr6QmJ8dhw0DSocW
+HSSpST9Mk6zEswBbs9Pvpgdewy+DkvApD7bPlfy/8jctAKk2R43jw8XTxWy07phE
++po13WQCC94Ydb2MBh0U6gwTPe+/QAS90IpvhjlDQWWJtaZKNQIHMh9qdrZU/fK1
+pzZh
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/intermediateCA_https.crt b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/intermediateCA_https.crt
new file mode 100644
index 000000000..f0e7d4027
--- /dev/null
+++ b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/intermediateCA_https.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEQTCCAymgAwIBAgIUFGpH3osZ3jzR99AL4v3ljyQWtLYwDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MjBaFw0zNDA1MzAxMjQ3MjBaMIGh
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEXMBUGA1UECwwORXBpY01vcmcgSFRUUFMxJTAjBgNVBAMM
+HEVwaWNNLm9yZyBJbnRlcm1lZGlhdGUgSFRUUFMxIjAgBgkqhkiG9w0BCQEWE2Rl
+dmVsb3BlckBlcGljbS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCziMvV2TQ7FRp3SG8ArOre4e34alHUxF7pUFVchMJpEWa6AVFtkPvFs/Zm/KcY
+FLxsI8c4UT21lkH6Np1zr8ZUYF/QG32WZTEpeGL3FKI5WO83bSkuaRSGYm9lQ932
+/t+oQ36B+JpLcmnEPr79I4fwU2BG+Yr+1McWqpwOaM10c+2QcXFMUWszno8kxdUG
+ixjbxrGGoNJxW+zBhXpC1PBiK5whBe5p/u4cn7i4f8ANTmKd4jn0NSN4K5gnP03J
+Wf+ePbbyaXMj4YWamlTMWOFDID9xJHwYaYF8bDVR7cUPKRGJe5D6mc8JcnO8+WHJ
+GsvCkRZEA44OEArpXVNwMTgZAgMBAAGjeDB2MB8GA1UdIwQYMBaAFHJ4zHOtCWWl
+9Jqu7AdKj0cQlgT/MA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMG
+A1UdJQQMMAoGCCsGAQUFBwMBMB0GA1UdDgQWBBTyIWWlrsX5gyd+pGFmYzZVnbXg
+GzANBgkqhkiG9w0BAQ0FAAOCAQEAdMkjh0fJI+S1u5efCu0LiwM8SaMz0E8OuaAY
+7MNLUu1NeiVqPyxYIxr25OnBzDwTIdsoMNHcgQB+aQFWLH6LFRgheBn6ywqIm/zJ
+l3+1tLJhj/NJEI7o0eLDjGwKKoSloj8QdpMc+PIQENQVlwNm1zdHBDQfclAL2t1n
+UpLfYrt7Hjta++ZI+8JAgqBb3yijI6fu8KRCQU5SpwEV/ifdFWsPjh68oQFnQafQ
+WyiKsy4EPPkCChMI/vD/PTImwes8obyGHD/CshNFvxVnmqNq2o9r5wl6udLMC5NF
+fpCbO1B5Sm6SwBhpOAWfaD2SoVP1d0MKCroATB88vpZUCFoaVw==
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt
new file mode 100644
index 000000000..1fbc4a47e
--- /dev/null
+++ b/linux/advanced/zabbix/5.2/server-pgsql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG6DCCBNCgAwIBAgICEAUwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjQwNzE1MTI1MDQxWhcNMjkwNzE5MTI1MDQxWjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1j0rkZECOt1S8o7I
+JY+4YKAxuEa5xaHKHXT2EpkuC/0krqMOjUy2oPIRNgR5g8X0Jl6jamxeGLc4Q1tf
+ju6or9oSRYThIUhRsFDQNBiBBEXoBgWxTfiKB2eyT97+pz5TBtBiRCPaLGRHYLRb
+9Jz2HkJlxbtNPjtDrF5DPHym+mZ1M1z3hIQYAqJwLpsEBnsw/VxWMlxqHoeewd0h
+uJMd71KQ5vOKlz7KrIZ6EobNNa6wItuvsfj3kYCK7O78uLHGXXFxdr8Hae9lMUmC
+8F7AFwa+bO1LRlTlqW7rE3rLf+jj70N01N8T3o22v14YBaFBWQWncAVYD2JuL3tH
+252+kdNOERf1fLbLRigJAbd+hOhWYlNf963TFDgnNPliHNIW72SygVBnI2V3JwO1
+dp1hVKpK/zt8ziGdHW4gmOLTsH50YKdR4jNqUgQv4wASlKn9OpN6zHYc5G8h86fY
+BM+zxE5ikGI+I/vIqBuI0eaDU92AWN/YjFLpu8tMu9kLRSCf1vug6FIfDPWVo7iP
+ac/SI2v8jnnpaW7ph/Pz3WkzaG7ZZJsfFs+8dploWc6LOoDtbFBhMdGMxu024msC
+0PSjZb5ODXPIaO2NsA7fMiAtZcoK6anTUJh4zOP/stA9qsJGNxdrEmiPXSmBZY/N
+Y0wkZgZ6JTDhw7038bPvctkblJkCAwEAAaOCAYswggGHMB0GA1UdDgQWBBR3Pdk5
+r0K93FvKduru/c4+YSkwXzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qws
+hzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADCBmAYIKwYBBQUH
+AQEEgYswgYgwQAYIKwYBBQUHMAKGNGh0dHA6Ly9udWMtY2RwLnZvc2tob2QucnUv
+Y2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQwRAYIKwYBBQUHMAKGOGh0dHA6Ly9u
+dWMtY2RwLmRpZ2l0YWwuZ292LnJ1L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3J0
+MIGFBgNVHR8EfjB8MDqgOKA2hjRodHRwOi8vbnVjLWNkcC52b3NraG9kLnJ1L2Nk
+cC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMD6gPKA6hjhodHRwOi8vbnVjLWNkcC5k
+aWdpdGFsLmdvdi5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG
+9w0BAQsFAAOCAgEAmsINXtQ7wwUWvIeOr80MdJS/5G4xhyZOVEmeUorThquT672y
+cCg3XCxc4fwbiZqSSbBqntQ7RtiTAKMYMvBageKoVHbzz+R4jX01tKcTx8cDePrz
+dJ73bLNUorE7RU9QsW4KyiUeRmjMDV23AUlEvuQFTwgkHXvbac1BBdPn9CrssQuF
+5EGohZKcQPFiAAc4SHbRNhlr7uAwgpc/erzI9EAcvA6BVAXcVKoeGpV01uexUgZ6
+St5RP9UmDWNA7T4yVXWJ233N0Q8bl+6AswINQ3PosPu6yQQHQjr65YS06epK+AeI
+6j+oGR4xI7EhTQhQvaobnGmX/8QQ7XDRYCP2HXYxiffnn/CfZ/BVyKLYeY1ZipjE
+nzqdQIC2+Q3WtY8jsVRQMP38WFRmtsIt5snehnPTs5bKGVIcYzj3o3Ex/K7agEz0
+zAJ0JR5ivXZOvNkT0g9x1v+S1IkU3e/nX1a+tpRquMtnHX0L2lXArNHUbaOO9EJt
+d57WaIpofV5cVhhwShOgAuBc9UMJF3/n4t4RKiPxtsK8P67gcmphMhslj7AMYrYM
+ej2NvQZY4m3ub3CPC/PrTjDONvb+8g5xrKtxBjYqC74HSB4dg9G3WimSDUuP2Su6
+G2y2TUeyJuCvCLz289VoO0vg7cNdMobE3KCqAiiNhN2VBFxHAUKmUoRcRdw=
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt
new file mode 100644
index 000000000..3e868398d
--- /dev/null
+++ b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/epicmorg_epicmorg_rootCA.crt
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEEzCCAvugAwIBAgIUfigpDYicmN8hCXwWg9sHF17jVQ0wDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MTlaFw0zNDA1MzAxMjQ3MTlaMIGY
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEZMBcGA1UECwwQRXBpY01vcmcgUm9vdCBDQTEaMBgGA1UE
+AwwRRXBpY00ub3JnIFJvb3QgQ0ExIjAgBgkqhkiG9w0BCQEWE2RldmVsb3BlckBl
+cGljbS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCU7/vFW4dm
+atoZWEhtFwJ8WhBTWAx0fJzON9kzOM6YIvcu6/gpj++0j9d3hsg4VsTLjqeyRhYN
+ts3b71CaW96OHZ+X4GFE87p2dOoBvzCE9iM+WqHJZzjf4Oa2hK/oiQtsbU+q66lw
+eASPYRl5AU3gm7bzOLlpEvmabSzowdAU8qLBgrqJkdZf4ZjAcLfOvrVk8WaiUH3J
+D19newfGu9LIH76LzOu+w48C+nYqUsHtnxVstQgxFdSGuul2UTqK/Xv+IOwR3tXt
+WOhId6rGHxyXXM8Q+3jXcNWLLmGYecPoyQ4v3FNnecQzU76sx5h4Zf6oRA6crdya
+3tHoPQqa+td3AgMBAAGjUzBRMB0GA1UdDgQWBBRyeMxzrQllpfSaruwHSo9HEJYE
+/zAfBgNVHSMEGDAWgBRyeMxzrQllpfSaruwHSo9HEJYE/zAPBgNVHRMBAf8EBTAD
+AQH/MA0GCSqGSIb3DQEBDQUAA4IBAQAXqf8kQqSmFVgRQ9EbwCDzHkjPZq0o7lkU
+fZiH6/fshMG63lOLirLYXzQhfkkX2Gm671wAATpyj4GHzaf4+BPxn+1XdqGDV+AP
+V6EqKNF5lixdEm9KsSlztQ5+7cN7noLbhfHGFm1ExLdLJi4fY0EgX60ACkwttfkb
+OCTSXGK6JHXWE2hGWKhANyFjC62oFWdaptTlLDiSLLjtrMfs7c9Ng+HUh0mMwejS
+p2/4a3P0OFbLq/2TnHNTdYSDNM/oilhf0crebElUCYHir1HQF74Sh6G3ut8OO95J
+qw2J44n6YPr8LwL4lGCj8+okUvwPqC305zpBjP6c1ztmxQ8+dCKZ
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt
new file mode 100644
index 000000000..8aa93749d
--- /dev/null
+++ b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/epicmorg_intermediateCA_code.crt
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIETzCCAzegAwIBAgIUFGpH3osZ3jzR99AL4v3ljyQWtLUwDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MjBaFw0zNDA1MzAxMjQ3MjBaMIGv
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEeMBwGA1UECwwVRXBpY01vcmcgQ29kZSBTaWduaW5nMSww
+KgYDVQQDDCNFcGljTS5vcmcgSW50ZXJtZWRpYXRlIENvZGUgU2lnbmluZzEiMCAG
+CSqGSIb3DQEJARYTZGV2ZWxvcGVyQGVwaWNtLm9yZzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAL+Vm2ZwT27KenCyMEujAlmp0c92rCOu3QB/Ji8YR5Fh
+EgacatKRQ8kbZfb+uNK8s25oZlYlYd7VxdRp+rwGAjSKjxZ3SoQUj+gt7dGKhgNo
+TADMO+17ZC7KS+El4l2esjL4wWSVWT2axnwCbytpe0HG0bfAW3PktSc4X5w+5eoK
+YIQ7o00Yp+7tw6MDefQJDjDvigr1BizlCcF3WmygRAP8X+2/gHzzQ2AWqykQ9Vdv
+4KPavcCpg7j8rHE4cK2lbET/4vYlexe6GreG6TRvlxntY3BxsERkq8uG5MjriIBl
+Z1KKAoGr/0PSjMbqzlzLr0hLeIMZ3JU5AUrIWOZe7iMCAwEAAaN4MHYwHwYDVR0j
+BBgwFoAUcnjMc60JZaX0mq7sB0qPRxCWBP8wDwYDVR0TBAgwBgEB/wIBADAOBgNV
+HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFPnuujuW
+Y60YVHIXpUV15ioUXU3bMA0GCSqGSIb3DQEBDQUAA4IBAQAJvXBYLcPV6TV0cYt7
+KqQ/d7+BPqE5dHYYNKRGQLrZY05ceVDDAnQoiTO7R6zT75I34D0RjcWbBFcJsfas
+gvzgjqEItN7cm051kkthGYFIfASN07n89YqUeQpqQ5tg5MEqNBbNAlTgazgwlMFV
+sSh3hZLmeUW6phvU89VineF+IPTEhHWcvoYfmwd4rW0JSEImbr6QmJ8dhw0DSocW
+HSSpST9Mk6zEswBbs9Pvpgdewy+DkvApD7bPlfy/8jctAKk2R43jw8XTxWy07phE
++po13WQCC94Ydb2MBh0U6gwTPe+/QAS90IpvhjlDQWWJtaZKNQIHMh9qdrZU/fK1
+pzZh
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/intermediateCA_https.crt b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/intermediateCA_https.crt
new file mode 100644
index 000000000..f0e7d4027
--- /dev/null
+++ b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/intermediateCA_https.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEQTCCAymgAwIBAgIUFGpH3osZ3jzR99AL4v3ljyQWtLYwDQYJKoZIhvcNAQEN
+BQAwgZgxCzAJBgNVBAYTAlJVMQwwCgYDVQQIDANTUEIxDDAKBgNVBAcMA1NQQjES
+MBAGA1UECgwJRXBpY00ub3JnMRkwFwYDVQQLDBBFcGljTW9yZyBSb290IENBMRow
+GAYDVQQDDBFFcGljTS5vcmcgUm9vdCBDQTEiMCAGCSqGSIb3DQEJARYTZGV2ZWxv
+cGVyQGVwaWNtLm9yZzAeFw0yNDA2MDExMjQ3MjBaFw0zNDA1MzAxMjQ3MjBaMIGh
+MQswCQYDVQQGEwJSVTEMMAoGA1UECAwDU1BCMQwwCgYDVQQHDANTUEIxEjAQBgNV
+BAoMCUVwaWNNLm9yZzEXMBUGA1UECwwORXBpY01vcmcgSFRUUFMxJTAjBgNVBAMM
+HEVwaWNNLm9yZyBJbnRlcm1lZGlhdGUgSFRUUFMxIjAgBgkqhkiG9w0BCQEWE2Rl
+dmVsb3BlckBlcGljbS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCziMvV2TQ7FRp3SG8ArOre4e34alHUxF7pUFVchMJpEWa6AVFtkPvFs/Zm/KcY
+FLxsI8c4UT21lkH6Np1zr8ZUYF/QG32WZTEpeGL3FKI5WO83bSkuaRSGYm9lQ932
+/t+oQ36B+JpLcmnEPr79I4fwU2BG+Yr+1McWqpwOaM10c+2QcXFMUWszno8kxdUG
+ixjbxrGGoNJxW+zBhXpC1PBiK5whBe5p/u4cn7i4f8ANTmKd4jn0NSN4K5gnP03J
+Wf+ePbbyaXMj4YWamlTMWOFDID9xJHwYaYF8bDVR7cUPKRGJe5D6mc8JcnO8+WHJ
+GsvCkRZEA44OEArpXVNwMTgZAgMBAAGjeDB2MB8GA1UdIwQYMBaAFHJ4zHOtCWWl
+9Jqu7AdKj0cQlgT/MA8GA1UdEwQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMG
+A1UdJQQMMAoGCCsGAQUFBwMBMB0GA1UdDgQWBBTyIWWlrsX5gyd+pGFmYzZVnbXg
+GzANBgkqhkiG9w0BAQ0FAAOCAQEAdMkjh0fJI+S1u5efCu0LiwM8SaMz0E8OuaAY
+7MNLUu1NeiVqPyxYIxr25OnBzDwTIdsoMNHcgQB+aQFWLH6LFRgheBn6ywqIm/zJ
+l3+1tLJhj/NJEI7o0eLDjGwKKoSloj8QdpMc+PIQENQVlwNm1zdHBDQfclAL2t1n
+UpLfYrt7Hjta++ZI+8JAgqBb3yijI6fu8KRCQU5SpwEV/ifdFWsPjh68oQFnQafQ
+WyiKsy4EPPkCChMI/vD/PTImwes8obyGHD/CshNFvxVnmqNq2o9r5wl6udLMC5NF
+fpCbO1B5Sm6SwBhpOAWfaD2SoVP1d0MKCroATB88vpZUCFoaVw==
+-----END CERTIFICATE-----
diff --git a/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt
new file mode 100644
index 000000000..1fbc4a47e
--- /dev/null
+++ b/linux/advanced/zabbix/6.2/proxy-mysql/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem_2024.crt
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG6DCCBNCgAwIBAgICEAUwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjQwNzE1MTI1MDQxWhcNMjkwNzE5MTI1MDQxWjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1j0rkZECOt1S8o7I
+JY+4YKAxuEa5xaHKHXT2EpkuC/0krqMOjUy2oPIRNgR5g8X0Jl6jamxeGLc4Q1tf
+ju6or9oSRYThIUhRsFDQNBiBBEXoBgWxTfiKB2eyT97+pz5TBtBiRCPaLGRHYLRb
+9Jz2HkJlxbtNPjtDrF5DPHym+mZ1M1z3hIQYAqJwLpsEBnsw/VxWMlxqHoeewd0h
+uJMd71KQ5vOKlz7KrIZ6EobNNa6wItuvsfj3kYCK7O78uLHGXXFxdr8Hae9lMUmC
+8F7AFwa+bO1LRlTlqW7rE3rLf+jj70N01N8T3o22v14YBaFBWQWncAVYD2JuL3tH
+252+kdNOERf1fLbLRigJAbd+hOhWYlNf963TFDgnNPliHNIW72SygVBnI2V3JwO1
+dp1hVKpK/zt8ziGdHW4gmOLTsH50YKdR4jNqUgQv4wASlKn9OpN6zHYc5G8h86fY
+BM+zxE5ikGI+I/vIqBuI0eaDU92AWN/YjFLpu8tMu9kLRSCf1vug6FIfDPWVo7iP
+ac/SI2v8jnnpaW7ph/Pz3WkzaG7ZZJsfFs+8dploWc6LOoDtbFBhMdGMxu024msC
+0PSjZb5ODXPIaO2NsA7fMiAtZcoK6anTUJh4zOP/stA9qsJGNxdrEmiPXSmBZY/N
+Y0wkZgZ6JTDhw7038bPvctkblJkCAwEAAaOCAYswggGHMB0GA1UdDgQWBBR3Pdk5
+r0K93FvKduru/c4+YSkwXzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qws
+hzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADCBmAYIKwYBBQUH
+AQEEgYswgYgwQAYIKwYBBQUHMAKGNGh0dHA6Ly9udWMtY2RwLnZvc2tob2QucnUv
+Y2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQwRAYIKwYBBQUHMAKGOGh0dHA6Ly9u
+dWMtY2RwLmRpZ2l0YWwuZ292LnJ1L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3J0
+MIGFBgNVHR8EfjB8MDqgOKA2hjRodHRwOi8vbnVjLWNkcC52b3NraG9kLnJ1L2Nk
+cC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMD6gPKA6hjhodHRwOi8vbnVjLWNkcC5k
+aWdpdGFsLmdvdi5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG
+9w0BAQsFAAOCAgEAmsINXtQ7wwUWvIeOr80MdJS/5G4xhyZOVEmeUorThquT672y
+cCg3XCxc4fwbiZqSSbBqntQ7RtiTAKMYMvBageKoVHbzz+R4jX01tKcTx8cDePrz
+dJ73bLNUorE7RU9QsW4KyiUeRmjMDV23AUlEvuQFTwgkHXvbac1BBdPn9CrssQuF
+5EGohZKcQPFiAAc4SHbRNhlr7uAwgpc/erzI9EAcvA6BVAXcVKoeGpV01uexUgZ6
+St5RP9UmDWNA7T4yVXWJ233N0Q8bl+6AswINQ3PosPu6yQQHQjr65YS06epK+AeI
+6j+oGR4xI7EhTQhQvaobnGmX/8QQ7XDRYCP2HXYxiffnn/CfZ/BVyKLYeY1ZipjE
+nzqdQIC2+Q3WtY8jsVRQMP38WFRmtsIt5snehnPTs5bKGVIcYzj3o3Ex/K7agEz0
+zAJ0JR5ivXZOvNkT0g9x1v+S1IkU3e/nX1a+tpRquMtnHX0L2lXArNHUbaOO9EJt
+d57WaIpofV5cVhhwShOgAuBc9UMJF3/n4t4RKiPxtsK8P67gcmphMhslj7AMYrYM
+ej2NvQZY4m3ub3CPC/PrTjDONvb+8g5xrKtxBjYqC74HSB4dg9G3WimSDUuP2Su6
+G2y2TUeyJuCvCLz289VoO0vg7cNdMobE3KCqAiiNhN2VBFxHAUKmUoRcRdw=
+-----END CERTIFICATE-----
diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/nodejs/node23/docker-compose.yml b/linux/ecosystem/epicmorg/debian/12-bookworm/nodejs/node23/docker-compose.yml
index fec117814..628407c75 100644
--- a/linux/ecosystem/epicmorg/debian/12-bookworm/nodejs/node23/docker-compose.yml
+++ b/linux/ecosystem/epicmorg/debian/12-bookworm/nodejs/node23/docker-compose.yml
@@ -1,10 +1,10 @@
services:
app:
- image: "quay.io/epicmorg/debian:bookworm-nodejs22"
+ image: "quay.io/epicmorg/debian:bookworm-nodejs23"
build:
context: .
app-develop:
- image: "quay.io/epicmorg/debian:bookworm-develop-nodejs22"
+ image: "quay.io/epicmorg/debian:bookworm-develop-nodejs23"
build:
context: .
dockerfile: ./Dockerfile.develop
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile
index 158055446..fe0550a07 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile.develop
index b3e6afc0d..b93de17e8 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet8/Dockerfile.develop
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile
index 1e3d9bc63..139c977b1 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile.develop
index 060d3ea79..9750c91a8 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/dotnet9/Dockerfile.develop
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile
index ea6c82576..784c943a7 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile
@@ -1,6 +1,3 @@
-FROM quay.io/epicmorg/debian:trixie-develop as builder
-RUN echo "Just temp lyer to copy OpenSSL"
-
FROM quay.io/epicmorg/debian:trixie
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
@@ -14,23 +11,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-##################################################################
-# OpenSSL 3.4
-##################################################################
-ENV OPENSSL_34_VERSION=3.4.1
-ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
-ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
-ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
-ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
-ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
-
-COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
-COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
-
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -42,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile.develop
index 3dd5f2b31..d9900c5b0 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/lts/Dockerfile.develop
@@ -11,10 +11,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -26,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile
index 9532c13b4..a30f58ea3 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile
@@ -14,23 +14,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-##################################################################
-# OpenSSL 3.4
-##################################################################
-ENV OPENSSL_34_VERSION=3.4.1
-ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
-ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
-ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
-ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
-ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
-
-COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
-COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
-
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -42,7 +25,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile.develop
index caef82978..2cc652618 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/dotnet/sts/Dockerfile.develop
@@ -11,10 +11,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -26,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile
index 2ba1f276d..7718926fa 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile.develop
index 3b4f4ec2e..014407694 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet8/Dockerfile.develop
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile
index 66d1a482c..ed4ba9ca9 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile.develop
index 5a4285ca9..459920a8b 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/dotnet9/Dockerfile.develop
@@ -22,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile b/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile
index fba5e8bfb..a73b4db0c 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile
@@ -1,6 +1,3 @@
-FROM quay.io/epicmorg/debian:sid-develop as builder
-RUN echo "Just temp lyer to copy OpenSSL"
-
FROM quay.io/epicmorg/debian:sid
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
@@ -14,23 +11,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-##################################################################
-# OpenSSL 3.4
-##################################################################
-ENV OPENSSL_34_VERSION=3.4.1
-ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
-ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
-ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
-ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
-ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
-
-COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
-COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
-
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -42,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile.develop
index b55f4bc5e..2de77664b 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/lts/Dockerfile.develop
@@ -11,10 +11,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -26,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile b/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile
index 06eb16816..6a35b8628 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile
@@ -1,6 +1,3 @@
-FROM quay.io/epicmorg/debian:sid-develop as builder
-RUN echo "Just temp lyer to copy OpenSSL"
-
FROM quay.io/epicmorg/debian:sid
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
@@ -14,23 +11,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-##################################################################
-# OpenSSL 3.4
-##################################################################
-ENV OPENSSL_34_VERSION=3.4.1
-ENV OPENSSL_34_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_34_VERSION}
-ENV OPENSSL_34_BIN_DIR=${OPENSSL_34_DIR}/bin
-ENV OPENSSL_34_INC_DIR=${OPENSSL_34_DIR}/include
-ENV OPENSSL_34_LIB_DIR=${OPENSSL_34_DIR}/lib64
-ENV OPENSSL_34_SRC_DIR=/usr/local/src/openssl/${OPENSSL_34_VERSION}
-
-COPY --from=builder ${OPENSSL_34_DIR} ${OPENSSL_34_DIR}
-COPY --from=builder ${OPENSSL_34_SRC_DIR} ${OPENSSL_34_SRC_DIR}
-
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -42,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Version after install
diff --git a/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile.develop b/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile.develop
index 79a45292b..177661621 100644
--- a/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile.develop
+++ b/linux/ecosystem/epicmorg/debian/sid/dotnet/sts/Dockerfile.develop
@@ -11,10 +11,6 @@ ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scrip
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-ENV OPENSSL_ROOT=${OPENSSL_34_DIR}
-ENV LD_LIBRARY_PATH="${OPENSSL_ROOT}/lib64:${PYTHON_DIR}/lib:$LD_LIBRARY_PATH"
-ENV PYTHONPATH="${PYTHON_DIR}/lib/python${PYTHON_VERSION}/site-packages:$PYTHONPATH"
-
##################################################################
# installing dotnet
##################################################################
@@ -26,7 +22,7 @@ RUN mkdir -p ${DOTNET_ROOT} && \
##################################################################
# Setup $PATH
##################################################################
-ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}:${OPENSSL_34_BIN_DIR}
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
##################################################################
# Setup certs
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.10/Dockerfile b/linux/ecosystem/github/runner/amxx-sdk/1.10/Dockerfile
new file mode 100644
index 000000000..08b1e074e
--- /dev/null
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.10/Dockerfile
@@ -0,0 +1,51 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# teamcity AMXXModX setup
+##################################################################
+#
+# Reserved for future
+# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-cstrike-linux` && \
+# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-dod-linux` && \
+# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-esf-linux` && \
+# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-ns-linux` && \
+# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-tfc-linux` && \
+# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-base-linux` && \
+#
+# Install packages
+ENV AMXX_VERSION=1.10
+ENV AMXX_INSTALL_PATH=${EMG_LOCAL_BASE_DIR}/amxmodx/${AMXX_VERSION}
+ENV AMXX_BIN_PATH=${AMXX_INSTALL_PATH}/scripting
+ENV AMXX_INC_PATH=${AMXX_BIN_PATH}/include
+ENV PATH=${AMXX_BIN_PATH}:${PATH}
+ENV LD_LIBRARY_PATH=${AMXX_BIN_PATH}:${LD_LIBRARY_PATH}
+
+COPY inc.tar /tmp
+
+RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.10/amxmodx-latest-base-linux` && \
+ mkdir -p ${AMXX_INSTALL_PATH} && \
+ curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \
+ cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \
+ mv -f /tmp/addons/amxmodx/* ${AMXX_INSTALL_PATH} && \
+ chmod +x ${AMXX_BIN_PATH}/amxxpc && \
+ chmod +x ${AMXX_BIN_PATH}/compile.sh && \
+ tar -C ${AMXX_INC_PATH} -xvf /tmp/inc.tar && \
+ chmod -R 700 ${AMXX_INC_PATH} && \
+ amxxpc --help 2>&1 | head -n 1
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+RUN updatedb
diff --git a/linux/advanced/vscode-server/devops/Makefile b/linux/ecosystem/github/runner/amxx-sdk/1.10/Makefile
similarity index 95%
rename from linux/advanced/vscode-server/devops/Makefile
rename to linux/ecosystem/github/runner/amxx-sdk/1.10/Makefile
index ff56425bb..1e4371492 100644
--- a/linux/advanced/vscode-server/devops/Makefile
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.10/Makefile
@@ -13,7 +13,7 @@ deploy:
make deploy-buildah
build-buildah:
- buildah-wrapper --build --squash
+ buildah-wrapper --build
deploy-buildah:
buildah-wrapper --deploy
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.10/README.md b/linux/ecosystem/github/runner/amxx-sdk/1.10/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.10/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.10/docker-compose.yml b/linux/ecosystem/github/runner/amxx-sdk/1.10/docker-compose.yml
new file mode 100644
index 000000000..9dbf99195
--- /dev/null
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.10/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:amxx-sdk-rc"
+ build:
+ context: .
diff --git a/linux/advanced/vscode-server/devops/inc.tar b/linux/ecosystem/github/runner/amxx-sdk/1.10/inc.tar
similarity index 100%
rename from linux/advanced/vscode-server/devops/inc.tar
rename to linux/ecosystem/github/runner/amxx-sdk/1.10/inc.tar
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.9/Dockerfile b/linux/ecosystem/github/runner/amxx-sdk/1.9/Dockerfile
new file mode 100644
index 000000000..28a0c6547
--- /dev/null
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.9/Dockerfile
@@ -0,0 +1,51 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# teamcity AMXXModX setup
+##################################################################
+#
+# Reserved for future
+# export AMXX_CSTRIKE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-cstrike-linux` && \
+# export AMXX_DOD_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-dod-linux` && \
+# export AMXX_ESF_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-esf-linux` && \
+# export AMXX_NS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-ns-linux` && \
+# export AMXX_TFC_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-tfc-linux` && \
+# export AMXX_TS_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \
+#
+# Install packages
+ENV AMXX_VERSION=1.9
+ENV AMXX_INSTALL_PATH=${EMG_LOCAL_BASE_DIR}/amxmodx/${AMXX_VERSION}
+ENV AMXX_BIN_PATH=${AMXX_INSTALL_PATH}/scripting
+ENV AMXX_INC_PATH=${AMXX_BIN_PATH}/include
+ENV PATH=${AMXX_BIN_PATH}:${PATH}
+ENV LD_LIBRARY_PATH=${AMXX_BIN_PATH}:${LD_LIBRARY_PATH}
+
+COPY inc.tar /tmp
+
+RUN export AMXX_BASE_LATEST_VERSION=`curl -s https://www.amxmodx.org/amxxdrop/1.9/amxmodx-latest-base-linux` && \
+ mkdir -p ${AMXX_INSTALL_PATH} && \
+ curl -SL https://www.amxmodx.org/amxxdrop/{$AMXX_VERSION}/{$AMXX_BASE_LATEST_VERSION} -o /tmp/amxx_base_latest.tar.gz && \
+ cd /tmp && tar -zxf /tmp/amxx_base_latest.tar.gz && cd / && \
+ mv -f /tmp/addons/amxmodx/* ${AMXX_INSTALL_PATH} && \
+ chmod +x ${AMXX_BIN_PATH}/amxxpc && \
+ chmod +x ${AMXX_BIN_PATH}/compile.sh && \
+ tar -C ${AMXX_INC_PATH} -xvf /tmp/inc.tar && \
+ chmod -R 700 ${AMXX_INC_PATH} && \
+ amxxpc --help 2>&1 | head -n 1
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.9/Makefile b/linux/ecosystem/github/runner/amxx-sdk/1.9/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.9/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.9/README.md b/linux/ecosystem/github/runner/amxx-sdk/1.9/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.9/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.9/docker-compose.yml b/linux/ecosystem/github/runner/amxx-sdk/1.9/docker-compose.yml
new file mode 100644
index 000000000..1f1a4be37
--- /dev/null
+++ b/linux/ecosystem/github/runner/amxx-sdk/1.9/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:amxx-sdk"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/amxx-sdk/1.9/inc.tar b/linux/ecosystem/github/runner/amxx-sdk/1.9/inc.tar
new file mode 100644
index 000000000..533c3a1b5
Binary files /dev/null and b/linux/ecosystem/github/runner/amxx-sdk/1.9/inc.tar differ
diff --git a/linux/ecosystem/github/runner/android-sdk/Dockerfile b/linux/ecosystem/github/runner/android-sdk/Dockerfile
new file mode 100644
index 000000000..8fd2f099a
--- /dev/null
+++ b/linux/ecosystem/github/runner/android-sdk/Dockerfile
@@ -0,0 +1,162 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_JDK_MAJOR_VERSION=17
+ARG K_JDK_FULL_VERSION=jdk-17.0.15
+ARG K_JDK_VERSION=17.0.15
+ARG K_JDK_BUILD_VERSION=6
+ARG K_JDK_DIR=${EMG_LOCAL_BASE_DIR}/java/${K_JDK_MAJOR_VERSION}
+ARG K_JDK_URL=https://github.com/adoptium/temurin${K_JDK_MAJOR_VERSION}-binaries/releases/download/${K_JDK_FULL_VERSION}+${K_JDK_BUILD_VERSION}/OpenJDK${K_JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz
+ARG K_JDK_TEMP=/tmp/OpenJDK${K_JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${K_JDK_VERSION}_${K_JDK_BUILD_VERSION}.tar.gz
+
+ENV JAVA_HOME=${K_JDK_DIR}
+ENV JRE_HOME=${JAVA_HOME}
+ENV JDK_HOME=${JAVA_HOME}
+ENV PATH=$PATH:${JAVA_HOME}/bin
+
+##################################################################
+# installing java17
+##################################################################
+ADD ${K_JDK_URL} /tmp
+RUN mkdir -p ${K_JDK_DIR} && \
+ tar -xzf ${K_JDK_TEMP} --strip-components=1 --directory ${K_JDK_DIR} && \
+ ln -sfv ${JAVA_HOME} /usr/jre && \
+ ln -sfv ${JAVA_HOME} /usr/jdk && \
+ java -version && \
+# cleanup
+ apt-get clean -y && \
+ apt-get clean all -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.9
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.13
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.1.10
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+
+##################################################################
+# Android SDK
+##################################################################
+ENV ANDROID_HOME=${EMG_LOCAL_BASE_DIR}/android/sdk
+ENV ANDROID_SDK_ROOT=${ANDROID_HOME}
+
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ android-sdk \
+ sdkmanager \
+ android-sdk-build-tools \
+ android-sdk-platform-tools-common \
+ android-sdk-platform-tools \
+ adb fastboot f2fs-tools e2fsprogs libsqlite3-0 sqlite3 && \
+ mkdir -p ${ANDROID_HOME} && \
+ sdkmanager --version && \
+ gradle -v && \
+ mvn -v
+
+RUN sdkmanager --install --verbose \
+ "cmake;3.22.1" \
+#
+ "cmdline-tools;latest" \
+#
+ "tools" \
+#
+ "platform-tools" \
+#
+ "platforms;android-35" \
+#
+ "build-tools;35.0.0" \
+#
+ "extras;android;m2repository" \
+#
+ "ndk;25.2.9519653"
+
+ENV PATH="${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/tools/bin:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/tools/proguard/bin:${ANDROID_SDK_ROOT}/platform-tools:${PATH}"
+
+# Activate android sdk
+RUN yes | sdkmanager --licenses && \
+ flutter doctor && \
+ yes | sdkmanager --licenses && \
+ flutter doctor -v
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/android-sdk/Makefile b/linux/ecosystem/github/runner/android-sdk/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/android-sdk/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/android-sdk/README.md b/linux/ecosystem/github/runner/android-sdk/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/android-sdk/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/android-sdk/docker-compose.yml b/linux/ecosystem/github/runner/android-sdk/docker-compose.yml
new file mode 100644
index 000000000..70c1d26ab
--- /dev/null
+++ b/linux/ecosystem/github/runner/android-sdk/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:android-sdk"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/atlassian-sdk/Dockerfile b/linux/ecosystem/github/runner/atlassian-sdk/Dockerfile
new file mode 100644
index 000000000..74fc836a1
--- /dev/null
+++ b/linux/ecosystem/github/runner/atlassian-sdk/Dockerfile
@@ -0,0 +1,151 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_JDK_MAJOR_VERSION=8
+ARG K_JDK_FULL_VERSION=jdk8u452
+ARG K_JDK_VERSION=8u452
+ARG K_JDK_BUILD_VERSION=b09
+ARG K_JDK_DIR=${EMG_LOCAL_BASE_DIR}/java/${K_JDK_MAJOR_VERSION}
+ARG K_JDK_URL=https://github.com/adoptium/temurin${K_JDK_MAJOR_VERSION}-binaries/releases/download/${K_JDK_FULL_VERSION}-${K_JDK_BUILD_VERSION}/OpenJDK${K_JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz
+ARG K_JDK_TEMP=/tmp/OpenJDK${K_JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${K_JDK_VERSION}${K_JDK_BUILD_VERSION}.tar.gz
+
+ENV JAVA_HOME=${K_JDK_DIR}
+ENV JRE_HOME=${JAVA_HOME}
+ENV JDK_HOME=${JAVA_HOME}
+ENV PATH=$PATH:${JAVA_HOME}/bin
+
+##################################################################
+# installing java8
+##################################################################
+ADD ${K_JDK_URL} /tmp
+RUN mkdir -p ${K_JDK_DIR} && \
+ tar -xzf ${K_JDK_TEMP} --strip-components=1 --directory ${K_JDK_DIR} && \
+ ln -sfv ${JAVA_HOME} /usr/jre && \
+ ln -sfv ${JAVA_HOME} /usr/jdk && \
+ java -version && \
+# cleanup
+ apt-get clean -y && \
+ apt-get clean all -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.9
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.13
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.1.10
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+##################################################################
+# Atlassian SDK Setup
+##################################################################
+
+ENV ATLASSIAN_SDK_DIR=${EMG_LOCAL_BASE_DIR}/atlassian
+ENV ATLASSIAN_SDK_BIN_DIR=${ATLASSIAN_SDK_DIR}/bin
+ARG ATLASSIAN_SDK_TEMP=/tmp/atlassian-plugin-sdk.tgz
+ARG ATLASSIAN_SDK_URL=https://marketplace.atlassian.com/download/plugins/atlassian-plugin-sdk-tgz
+
+###############################
+# https://community.atlassian.com/t5/Continuous-Delivery-questions/The-repository-https-packages-atlassian-com-atlassian-sdk-deb/qaq-p/1334014
+#
+# https://community.developer.atlassian.com/t/the-repository-https-packages-atlassian-com-atlassian-sdk-deb-stable-release-is-not-signed/36901
+###############################
+#COPY etc/apt/keyrings/atlassian.asc /etc/apt/keyrings/
+#COPY etc/apt/sources.list.d/atlassian-sdk.list /etc/apt/sources.list.d/
+#RUN apt-get update --allow-insecure-repositories && \
+# apt-get install -y --no-install-recommends --allow-unauthenticated \
+# atlassian-plugin-sdk
+#Install packages
+#RUN curl -SL https://packages.atlassian.com/atlassian-sdk-deb/debian/pool/contrib/a/atlassian-plugin-sdk/atlassian-plugin-sdk_8.0.16_all.deb -o /tmp/atlassian-plugin-sdk.deb && \
+# dpkg -i /tmp/atlassian-plugin-sdk.deb
+
+ADD ${ATLASSIAN_SDK_URL} ${ATLASSIAN_SDK_TEMP}
+
+RUN mkdir -p ${ATLASSIAN_SDK_BIN_DIR} && \
+ tar -xzf /tmp/atlassian-plugin-sdk.tgz --strip-components=1 --directory ${ATLASSIAN_SDK_DIR}
+
+ENV PATH=$PATH:${ATLASSIAN_SDK_BIN_DIR}
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ atlas-version && \
+ echo "============================================="
+
+##################################################################
+# cleaninig up
+##################################################################
+RUN apt-get clean -y && \
+ apt-get clean all -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/atlassian-sdk/Makefile b/linux/ecosystem/github/runner/atlassian-sdk/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/atlassian-sdk/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/atlassian-sdk/README.md b/linux/ecosystem/github/runner/atlassian-sdk/README.md
new file mode 100644
index 000000000..e69de29bb
diff --git a/linux/ecosystem/github/runner/atlassian-sdk/docker-compose.yml b/linux/ecosystem/github/runner/atlassian-sdk/docker-compose.yml
new file mode 100644
index 000000000..f668a1dfb
--- /dev/null
+++ b/linux/ecosystem/github/runner/atlassian-sdk/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:atlassian-sdk"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/dotnet-sdk/Dockerfile b/linux/ecosystem/github/runner/dotnet-sdk/Dockerfile
new file mode 100644
index 000000000..789419b49
--- /dev/null
+++ b/linux/ecosystem/github/runner/dotnet-sdk/Dockerfile
@@ -0,0 +1,65 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# installing dotnet
+##################################################################
+ENV DOTNET_CHANNEL=STS
+ENV DOTNET_ROOT=${EMG_LOCAL_BASE_DIR}/dotnet/${DOTNET_CHANNEL}
+ARG DOTNET_TOOLS_DIR=${DOTNET_ROOT}/tools
+ARG DOTNET_INSTALL_DIR=${DOTNET_ROOT}
+ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh
+
+ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
+ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
+
+ADD ${DOTNET_INSTALL_SCRIPT_URL} /tmp
+RUN mkdir -p ${DOTNET_ROOT} && \
+ chmod +x /tmp/dotnet-install.sh && \
+ /tmp/dotnet-install.sh --verbose --no-path --install-dir ${DOTNET_ROOT} --channel ${DOTNET_CHANNEL} --version latest
+
+##################################################################
+# Setup $PATH
+##################################################################
+ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR}
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo $(dotnet --info) && \
+ echo $(dotnet --list-sdks) && \
+ echo $(dotnet --list-runtimes) && \
+ echo "============================================="
+
+##################################################################
+# Mono
+##################################################################
+RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \
+# echo "deb https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \
+# echo "deb https://download.mono-project.com/repo/debian nightly-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \
+ echo "deb https://download.mono-project.com/repo/debian preview-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \
+ apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ mono-complete \
+ mono-llvm-support \
+ mono-devel \
+ mono-dbg \
+ referenceassemblies-pcl \
+ ca-certificates-mono \
+ mono-xsp4
+
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/dotnet-sdk/Makefile b/linux/ecosystem/github/runner/dotnet-sdk/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/dotnet-sdk/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/dotnet-sdk/README.md b/linux/ecosystem/github/runner/dotnet-sdk/README.md
new file mode 100644
index 000000000..e69de29bb
diff --git a/linux/ecosystem/github/runner/dotnet-sdk/docker-compose.yml b/linux/ecosystem/github/runner/dotnet-sdk/docker-compose.yml
new file mode 100644
index 000000000..94794a268
--- /dev/null
+++ b/linux/ecosystem/github/runner/dotnet-sdk/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:dotnet-sdk"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node0.12/Dockerfile b/linux/ecosystem/github/runner/node0.12/Dockerfile
new file mode 100644
index 000000000..3064f55ce
--- /dev/null
+++ b/linux/ecosystem/github/runner/node0.12/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=0
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.12.18
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 0.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+#RUN npm install -g pnpm yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+# echo yarn $(yarn --version) && \
+# echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node0.12/Makefile b/linux/ecosystem/github/runner/node0.12/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node0.12/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node0.12/README.md b/linux/ecosystem/github/runner/node0.12/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node0.12/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node0.12/docker-compose.yml b/linux/ecosystem/github/runner/node0.12/docker-compose.yml
new file mode 100644
index 000000000..80fc04289
--- /dev/null
+++ b/linux/ecosystem/github/runner/node0.12/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node0.12"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node10/Dockerfile b/linux/ecosystem/github/runner/node10/Dockerfile
new file mode 100644
index 000000000..ba04f43db
--- /dev/null
+++ b/linux/ecosystem/github/runner/node10/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=10
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.24.1
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 10.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@5 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node10/Makefile b/linux/ecosystem/github/runner/node10/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node10/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node10/README.md b/linux/ecosystem/github/runner/node10/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node10/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node10/docker-compose.yml b/linux/ecosystem/github/runner/node10/docker-compose.yml
new file mode 100644
index 000000000..f7555eef9
--- /dev/null
+++ b/linux/ecosystem/github/runner/node10/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node10"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node11/Dockerfile b/linux/ecosystem/github/runner/node11/Dockerfile
new file mode 100644
index 000000000..88a1bb30e
--- /dev/null
+++ b/linux/ecosystem/github/runner/node11/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=11
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.15.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 11.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@5 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node11/Makefile b/linux/ecosystem/github/runner/node11/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node11/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node11/README.md b/linux/ecosystem/github/runner/node11/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node11/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node11/docker-compose.yml b/linux/ecosystem/github/runner/node11/docker-compose.yml
new file mode 100644
index 000000000..6862b050f
--- /dev/null
+++ b/linux/ecosystem/github/runner/node11/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node11"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node12/Dockerfile b/linux/ecosystem/github/runner/node12/Dockerfile
new file mode 100644
index 000000000..a0c805368
--- /dev/null
+++ b/linux/ecosystem/github/runner/node12/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=12
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.22.9
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 12.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@6 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node12/Makefile b/linux/ecosystem/github/runner/node12/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node12/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node12/README.md b/linux/ecosystem/github/runner/node12/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node12/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node12/docker-compose.yml b/linux/ecosystem/github/runner/node12/docker-compose.yml
new file mode 100644
index 000000000..f61ce7109
--- /dev/null
+++ b/linux/ecosystem/github/runner/node12/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node12"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node13/Dockerfile b/linux/ecosystem/github/runner/node13/Dockerfile
new file mode 100644
index 000000000..3ae8a60c2
--- /dev/null
+++ b/linux/ecosystem/github/runner/node13/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=13
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 13.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@6 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node13/Makefile b/linux/ecosystem/github/runner/node13/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node13/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node13/README.md b/linux/ecosystem/github/runner/node13/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node13/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node13/docker-compose.yml b/linux/ecosystem/github/runner/node13/docker-compose.yml
new file mode 100644
index 000000000..38564df5f
--- /dev/null
+++ b/linux/ecosystem/github/runner/node13/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node13"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node14/Dockerfile b/linux/ecosystem/github/runner/node14/Dockerfile
new file mode 100644
index 000000000..067461e9f
--- /dev/null
+++ b/linux/ecosystem/github/runner/node14/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=14
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.21.3
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 14.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@7 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node14/Makefile b/linux/ecosystem/github/runner/node14/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node14/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node14/README.md b/linux/ecosystem/github/runner/node14/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node14/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node14/docker-compose.yml b/linux/ecosystem/github/runner/node14/docker-compose.yml
new file mode 100644
index 000000000..ea06ddd8f
--- /dev/null
+++ b/linux/ecosystem/github/runner/node14/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node14"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node15/Dockerfile b/linux/ecosystem/github/runner/node15/Dockerfile
new file mode 100644
index 000000000..620a3a734
--- /dev/null
+++ b/linux/ecosystem/github/runner/node15/Dockerfile
@@ -0,0 +1,48 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=15
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.14.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 15.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+#RUN npm install -g pnpm yarn
+RUN npm install -g yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+# echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node15/Makefile b/linux/ecosystem/github/runner/node15/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node15/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node15/README.md b/linux/ecosystem/github/runner/node15/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node15/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node15/docker-compose.yml b/linux/ecosystem/github/runner/node15/docker-compose.yml
new file mode 100644
index 000000000..aedd084b3
--- /dev/null
+++ b/linux/ecosystem/github/runner/node15/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node15"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node16/Dockerfile b/linux/ecosystem/github/runner/node16/Dockerfile
new file mode 100644
index 000000000..a10e9a1a3
--- /dev/null
+++ b/linux/ecosystem/github/runner/node16/Dockerfile
@@ -0,0 +1,48 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=16
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.2
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 16.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+#RUN npm install -g pnpm yarn
+RUN npm install -g yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+# echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node16/Makefile b/linux/ecosystem/github/runner/node16/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node16/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node16/README.md b/linux/ecosystem/github/runner/node16/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node16/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node16/docker-compose.yml b/linux/ecosystem/github/runner/node16/docker-compose.yml
new file mode 100644
index 000000000..05c861881
--- /dev/null
+++ b/linux/ecosystem/github/runner/node16/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node16"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node17/Dockerfile b/linux/ecosystem/github/runner/node17/Dockerfile
new file mode 100644
index 000000000..66ca25846
--- /dev/null
+++ b/linux/ecosystem/github/runner/node17/Dockerfile
@@ -0,0 +1,48 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=17
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 17.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+#RUN npm install -g pnpm yarn
+RUN npm install -g yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+# echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node17/Makefile b/linux/ecosystem/github/runner/node17/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node17/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node17/README.md b/linux/ecosystem/github/runner/node17/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node17/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node17/docker-compose.yml b/linux/ecosystem/github/runner/node17/docker-compose.yml
new file mode 100644
index 000000000..2899c6ac7
--- /dev/null
+++ b/linux/ecosystem/github/runner/node17/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node17"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node18/Dockerfile b/linux/ecosystem/github/runner/node18/Dockerfile
new file mode 100644
index 000000000..abf2fff80
--- /dev/null
+++ b/linux/ecosystem/github/runner/node18/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=18
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.20.4
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 18.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node18/Makefile b/linux/ecosystem/github/runner/node18/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node18/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node18/README.md b/linux/ecosystem/github/runner/node18/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node18/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node18/docker-compose.yml b/linux/ecosystem/github/runner/node18/docker-compose.yml
new file mode 100644
index 000000000..c47563776
--- /dev/null
+++ b/linux/ecosystem/github/runner/node18/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node18"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node19/Dockerfile b/linux/ecosystem/github/runner/node19/Dockerfile
new file mode 100644
index 000000000..794d61ff2
--- /dev/null
+++ b/linux/ecosystem/github/runner/node19/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=19
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 19.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node19/Makefile b/linux/ecosystem/github/runner/node19/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node19/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node19/README.md b/linux/ecosystem/github/runner/node19/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node19/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node19/docker-compose.yml b/linux/ecosystem/github/runner/node19/docker-compose.yml
new file mode 100644
index 000000000..c82c771f1
--- /dev/null
+++ b/linux/ecosystem/github/runner/node19/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node19"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node20/Dockerfile b/linux/ecosystem/github/runner/node20/Dockerfile
new file mode 100644
index 000000000..43f7962f6
--- /dev/null
+++ b/linux/ecosystem/github/runner/node20/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=20
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.18.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 20.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node20/Makefile b/linux/ecosystem/github/runner/node20/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node20/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node20/README.md b/linux/ecosystem/github/runner/node20/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node20/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node20/docker-compose.yml b/linux/ecosystem/github/runner/node20/docker-compose.yml
new file mode 100644
index 000000000..ade1df9bb
--- /dev/null
+++ b/linux/ecosystem/github/runner/node20/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node20"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node21/Dockerfile b/linux/ecosystem/github/runner/node21/Dockerfile
new file mode 100644
index 000000000..4ec64aeb0
--- /dev/null
+++ b/linux/ecosystem/github/runner/node21/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=21
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.7.3
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 21.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node21/Makefile b/linux/ecosystem/github/runner/node21/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node21/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node21/README.md b/linux/ecosystem/github/runner/node21/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node21/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node21/docker-compose.yml b/linux/ecosystem/github/runner/node21/docker-compose.yml
new file mode 100644
index 000000000..8e8e16c8e
--- /dev/null
+++ b/linux/ecosystem/github/runner/node21/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node21"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node22/Dockerfile b/linux/ecosystem/github/runner/node22/Dockerfile
new file mode 100644
index 000000000..3485f3970
--- /dev/null
+++ b/linux/ecosystem/github/runner/node22/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=22
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.6.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 22.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node22/Makefile b/linux/ecosystem/github/runner/node22/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node22/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node22/README.md b/linux/ecosystem/github/runner/node22/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node22/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node22/docker-compose.yml b/linux/ecosystem/github/runner/node22/docker-compose.yml
new file mode 100644
index 000000000..11367f136
--- /dev/null
+++ b/linux/ecosystem/github/runner/node22/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node22"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node23/Dockerfile b/linux/ecosystem/github/runner/node23/Dockerfile
new file mode 100644
index 000000000..6dc6c06ed
--- /dev/null
+++ b/linux/ecosystem/github/runner/node23/Dockerfile
@@ -0,0 +1,49 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=23
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 23.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node23/Makefile b/linux/ecosystem/github/runner/node23/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node23/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node23/README.md b/linux/ecosystem/github/runner/node23/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node23/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node23/docker-compose.yml b/linux/ecosystem/github/runner/node23/docker-compose.yml
new file mode 100644
index 000000000..f23aa9c4d
--- /dev/null
+++ b/linux/ecosystem/github/runner/node23/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node23"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node4/Dockerfile b/linux/ecosystem/github/runner/node4/Dockerfile
new file mode 100644
index 000000000..804dd4119
--- /dev/null
+++ b/linux/ecosystem/github/runner/node4/Dockerfile
@@ -0,0 +1,48 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=4
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 4.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+#RUN npm install -g pnpm yarn
+RUN npm install -g pnpm@2
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+# echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node4/Makefile b/linux/ecosystem/github/runner/node4/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node4/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node4/README.md b/linux/ecosystem/github/runner/node4/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node4/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node4/docker-compose.yml b/linux/ecosystem/github/runner/node4/docker-compose.yml
new file mode 100644
index 000000000..6d36eb80d
--- /dev/null
+++ b/linux/ecosystem/github/runner/node4/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node4"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node5/Dockerfile b/linux/ecosystem/github/runner/node5/Dockerfile
new file mode 100644
index 000000000..56c6ea422
--- /dev/null
+++ b/linux/ecosystem/github/runner/node5/Dockerfile
@@ -0,0 +1,48 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=5
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.9.1
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 5.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+#RUN npm install -g pnpm yarn
+RUN npm install -g pnpm@2
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+# echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node5/Makefile b/linux/ecosystem/github/runner/node5/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node5/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node5/README.md b/linux/ecosystem/github/runner/node5/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node5/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node5/docker-compose.yml b/linux/ecosystem/github/runner/node5/docker-compose.yml
new file mode 100644
index 000000000..a91affd3a
--- /dev/null
+++ b/linux/ecosystem/github/runner/node5/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node5"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node6/Dockerfile b/linux/ecosystem/github/runner/node6/Dockerfile
new file mode 100644
index 000000000..055d4ae8b
--- /dev/null
+++ b/linux/ecosystem/github/runner/node6/Dockerfile
@@ -0,0 +1,46 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG K_NODE_MAJOR_VERSION=6
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.1
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 6.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+#RUN npm install -g pnpm yarn
+RUN npm install -g pnpm@2
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+# echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node6/Makefile b/linux/ecosystem/github/runner/node6/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node6/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node6/README.md b/linux/ecosystem/github/runner/node6/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node6/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node6/docker-compose.yml b/linux/ecosystem/github/runner/node6/docker-compose.yml
new file mode 100644
index 000000000..50b75291c
--- /dev/null
+++ b/linux/ecosystem/github/runner/node6/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node6"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node7/Dockerfile b/linux/ecosystem/github/runner/node7/Dockerfile
new file mode 100644
index 000000000..be9c83525
--- /dev/null
+++ b/linux/ecosystem/github/runner/node7/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=7
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.10.1
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 7.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@3 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node7/Makefile b/linux/ecosystem/github/runner/node7/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node7/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node7/README.md b/linux/ecosystem/github/runner/node7/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node7/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node7/docker-compose.yml b/linux/ecosystem/github/runner/node7/docker-compose.yml
new file mode 100644
index 000000000..9e8a97163
--- /dev/null
+++ b/linux/ecosystem/github/runner/node7/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node7"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node8/Dockerfile b/linux/ecosystem/github/runner/node8/Dockerfile
new file mode 100644
index 000000000..e366ccfcc
--- /dev/null
+++ b/linux/ecosystem/github/runner/node8/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=8
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.17.0
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 8.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@3 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node8/Makefile b/linux/ecosystem/github/runner/node8/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node8/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node8/README.md b/linux/ecosystem/github/runner/node8/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node8/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node8/docker-compose.yml b/linux/ecosystem/github/runner/node8/docker-compose.yml
new file mode 100644
index 000000000..c85fcca1e
--- /dev/null
+++ b/linux/ecosystem/github/runner/node8/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node8"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/node9/Dockerfile b/linux/ecosystem/github/runner/node9/Dockerfile
new file mode 100644
index 000000000..9d5ee1ba1
--- /dev/null
+++ b/linux/ecosystem/github/runner/node9/Dockerfile
@@ -0,0 +1,47 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+
+ARG DEBIAN_FRONTEND=noninteractive
+
+ARG K_NODE_MAJOR_VERSION=9
+ARG K_NODE_VERSION=${K_NODE_MAJOR_VERSION}.11.2
+ARG K_NODE_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-linux-x64.tar.gz
+ARG K_NODE_HEADERS_URL=https://nodejs.org/dist/v${K_NODE_VERSION}/node-v${K_NODE_VERSION}-headers.tar.gz
+
+##################################################################
+# Node.js 9.x
+##################################################################
+RUN groupadd -g 1337 node && \
+ useradd -u 1337 --gid node --shell /bin/bash --create-home node
+
+ADD ${K_NODE_URL} /tmp
+ADD ${K_NODE_HEADERS_URL} /tmp
+
+RUN tar -xzf /tmp/node-v${K_NODE_VERSION}-linux-x64.tar.gz --strip-components=1 --directory /usr/local && \
+ tar -xzf /tmp/node-v${K_NODE_VERSION}-headers.tar.gz --strip-components=1 --directory /usr/local && \
+ rm -rfv /usr/local/CHANGELOG.md /usr/local/LICENSE /usr/local/README.md
+
+RUN npm install -g pnpm@3 yarn
+
+##################################################################
+# Version after install
+##################################################################
+RUN echo "=============================================" && \
+ echo node $(node --version) && \
+ echo npm $(npm --version) && \
+ echo yarn $(yarn --version) && \
+ echo pnpm $(pnpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /root/tmp/* && \
+ rm -rfv /tmp/*
+
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/node9/Makefile b/linux/ecosystem/github/runner/node9/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/github/runner/node9/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/node9/README.md b/linux/ecosystem/github/runner/node9/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/node9/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/node9/docker-compose.yml b/linux/ecosystem/github/runner/node9/docker-compose.yml
new file mode 100644
index 000000000..414f3c5e4
--- /dev/null
+++ b/linux/ecosystem/github/runner/node9/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:node9"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/php56/Dockerfile b/linux/ecosystem/github/runner/php56/Dockerfile
new file mode 100644
index 000000000..a8728b991
--- /dev/null
+++ b/linux/ecosystem/github/runner/php56/Dockerfile
@@ -0,0 +1,280 @@
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ENV PHP_VER=5.6
+ENV PHP_MODULE_PATH=/usr/lib/php/20131226
+ENV PHP_DIR=/etc/php/${PHP_VER}
+ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini
+ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini
+
+##################################################################
+# Installing PHP5.6
+##################################################################
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+# php-pear \
+ php5.6 \
+ php5.6-cli \
+ php5.6-common \
+ php5.6-dev \
+ php5.6-amqp \
+ php5.6-apcu \
+ php5.6-bcmath \
+ php5.6-bz2 \
+ php5.6-cgi \
+ php5.6-curl \
+ php5.6-dba \
+ php5.6-dio \
+ php5.6-enchant \
+ php5.6-fpm \
+ php5.6-gd \
+ php5.6-gearman \
+ php5.6-geoip \
+# php5.6-gmagick \
+ php5.6-gmp \
+ php5.6-gnupg \
+ php5.6-grpc \
+ php5.6-http \
+ php5.6-igbinary \
+ php5.6-imagick \
+ php5.6-imap \
+ php5.6-inotify \
+ php5.6-interbase \
+ php5.6-intl \
+ php5.6-json \
+ php5.6-ldap \
+ php5.6-libvirt-php \
+ php5.6-lua \
+ php5.6-lz4 \
+ php5.6-mailparse \
+ php5.6-mbstring \
+ php5.6-mcrypt \
+ php5.6-memcache \
+ php5.6-memcached \
+ php5.6-mongo \
+ php5.6-mongodb \
+ php5.6-msgpack \
+ php5.6-mysql \
+ php5.6-mysqlnd-ms \
+ php5.6-oauth \
+ php5.6-odbc \
+ php5.6-opcache \
+ php5.6-pgsql \
+ php5.6-phpdbg \
+ php5.6-propro \
+ php5.6-protobuf \
+ php5.6-ps \
+ php5.6-pspell \
+ php5.6-radius \
+ php5.6-raphf \
+ php5.6-readline \
+ php5.6-recode \
+ php5.6-redis \
+ php5.6-rrd \
+ php5.6-smbclient \
+ php5.6-snmp \
+ php5.6-soap \
+ php5.6-solr \
+ php5.6-sqlite3 \
+ php5.6-ssh2 \
+ php5.6-stomp \
+ php5.6-sybase \
+ php5.6-tidy \
+ php5.6-uploadprogress \
+# php5.6-xcache \
+ php5.6-xdebug \
+ php5.6-xhprof \
+ php5.6-xml \
+ php5.6-xmlrpc \
+ php5.6-xsl \
+# php5.6-yac \
+ php5.6-yaml \
+ php5.6-zip \
+ php5.6-zmq \
+ smbclient \
+ libsmbclient \
+ sendmail && \
+ ln -sfv /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \
+ apt-get remove -y \
+# php5.6* \
+ php7.0* \
+ php7.1* \
+ php7.2* \
+ php7.3* \
+ php7.4* \
+ php8.0* \
+ php8.1* \
+ php8.2* \
+ php8.3* \
+ php8.4* && \
+ rm -rfv /etc/php/{7.0,7.1,7.2,7.3,7.4,8.0,8.1,8.2,8.3,8.4} && \
+ update-alternatives --set php /usr/bin/php5.6 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# Enabling extensions
+##################################################################
+RUN phpenmod \
+ calendar \
+ ldap \
+ curl \
+ exif \
+ ftp \
+ fileinfo \
+ gd \
+ geoip \
+ iconv \
+ imap \
+ json \
+ mbstring \
+ mysqli \
+ mysqlnd \
+ oauth \
+ pdo_mysql \
+ pdo_sqlite \
+ phar \
+ posix \
+ readline \
+ redis \
+ simplexml \
+ sockets \
+ sqlite3 \
+ ssh2 \
+ tokenizer \
+ xml \
+ xmlreader \
+ xmlrpc \
+ xmlwriter \
+ xsl \
+ yaml && \
+ phpdismod \
+ xdebug \
+ xcache \
+ xhprof \
+ tideways \
+ pcov \
+ swoole \
+ grpc \
+ uopz && \
+ php -m && \
+ php -v
+
+##################################################################
+# Enabling extensions
+##################################################################
+#RUN pear update-channels && \
+# pecl channel-update pecl.php.net && \
+# pear upgrade
+
+##############################################################################
+# Cassandra CPP Support Install
+##############################################################################
+#OPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb
+#RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \
+# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \
+# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \
+# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \
+# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \
+# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \
+# https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb
+
+#RUN cd /tmp/cassandra-php-driver && \
+# dpkg -i ./multiarch-support_2.28_amd64.deb && \
+# dpkg -i ./libuv1_1.35.0-1_amd64.deb && \
+# dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \
+# dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \
+# dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \
+# dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \
+# dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb
+
+##############################################################################
+# Cassandra PHP Drivers Install
+##############################################################################
+#RUN pecl install cassandra && \
+# echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > /usr/local/etc/php/conf.d/cassandra.ini && \
+# php -m && \
+# php -v
+
+##################################################################
+# Installing timezonedb addon
+##################################################################
+RUN pecl install timezonedb && \
+# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing imagic addon
+##################################################################
+#RUN pecl install imagick && \
+## echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/apache2/php.ini && \
+# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cgi/php.ini && \
+# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/cli/php.ini && \
+# echo "extension = ${PHP_MODULE_PATH}/imagick.so" >> ${PHP_DIR}/fpm/php.ini && \
+# php -m && \
+# php -v
+
+##################################################################
+# Installing IOnCube addon
+##################################################################
+ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz
+RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \
+ cp /tmp/ioncube/ioncube_loader_lin_5.6.so ${PHP_MODULE_PATH} && \
+ # echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_5.6.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_5.6.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_5.6.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing P4 addon
+##################################################################
+#COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH}
+#RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \
+## ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \
+# ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \
+# ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \
+# ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \
+# php -m && \
+# php -v
+
+##################################################################
+# Installing Composer addon
+##################################################################
+RUN cd /tmp && \
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
+ php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
+ rm /tmp/composer-setup.php
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/php56/Makefile b/linux/ecosystem/github/runner/php56/Makefile
new file mode 100644
index 000000000..b88fa3708
--- /dev/null
+++ b/linux/ecosystem/github/runner/php56/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+deploy:
+ make deploy-kaniko
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/php56/README.md b/linux/ecosystem/github/runner/php56/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/php56/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/php56/docker-compose.yml b/linux/ecosystem/github/runner/php56/docker-compose.yml
new file mode 100644
index 000000000..ae53d1393
--- /dev/null
+++ b/linux/ecosystem/github/runner/php56/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:php5.6"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/php70/Dockerfile b/linux/ecosystem/github/runner/php70/Dockerfile
new file mode 100644
index 000000000..f92cae0f0
--- /dev/null
+++ b/linux/ecosystem/github/runner/php70/Dockerfile
@@ -0,0 +1,384 @@
+FROM quay.io/epicmorg/debian:bookworm-develop AS builder
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# ARGuments
+##################################################################
+
+
+ARG BUILDS_DIR=/builds
+ARG SRC_DIR=${BUILDS_DIR}/src
+ARG EXPORT_DIR=${BUILDS_DIR}/export
+ARG P4API_DIR=${SRC_DIR}/p4api
+ARG P4PHP_DIR=${SRC_DIR}/p4php
+ARG MAKE_DIR=${SRC_DIR}/p4php-7.0
+
+ARG P4API_VER=r20.1
+ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz
+
+ARG P4PHP_VER=r20.1
+ARG P4PHP_URL=http://filehost.perforce.com/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz
+
+ARG P4MODULE_PATH=/usr/lib/php/20151012
+
+##################################################################
+# Files and folders
+##################################################################
+RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR}
+
+##################################################################
+# Installing PHP7
+##################################################################
+#installing PHP repo
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+#Install base packages
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+# php-pear \
+ php7.0 \
+ php7.0-common \
+ php7.0-dev \
+ php7.0-fpm \
+ php7.0-cli \
+ php7.0-xml \
+ php7.0-cgi && \
+ update-alternatives --set php /usr/bin/php7.0 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# preparing p4src
+##################################################################
+RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \
+ wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ cd ${P4API_DIR} && \
+ ls -las && \
+ cd ${P4PHP_DIR} && \
+ ls -las && \
+ cd ${MAKE_DIR} && \
+ ls -las && \
+ cd ${SRC_DIR} && \
+ ls -las
+
+##################################################################
+# compilling p4src
+##################################################################
+RUN cd ${MAKE_DIR} && \
+ ls -las && \
+ phpize && \
+ ./configure --with-perforce=${P4API_DIR} && \
+ make && \
+ make test && \
+ make install && \
+ cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR}
+
+##################################################################
+##################################################################
+##################################################################
+
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ENV PHP_VER=7.0
+ENV PHP_MODULE_PATH=/usr/lib/php/20151012
+ENV PHP_DIR=/etc/php/${PHP_VER}
+ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini
+ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini
+
+##################################################################
+# Installing PHP7
+##################################################################
+#installing PHP repo
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+ libgmp-dev \
+# php-pear \
+ php7.0 \
+ php7.0-cli \
+ php7.0-common \
+ php7.0-dev \
+ php7.0-amqp \
+ php7.0-apcu-bc \
+ php7.0-apcu \
+ php7.0-bcmath \
+ php7.0-bz2 \
+ php7.0-cgi \
+ php7.0-curl \
+ php7.0-dba \
+ php7.0-decimal \
+ php7.0-dio \
+ php7.0-ds \
+ php7.0-enchant \
+ php7.0-fpm \
+ php7.0-gd \
+ php7.0-gearman \
+ php7.0-geoip \
+# php7.0-gmagick \
+ php7.0-gmp \
+ php7.0-gnupg \
+ php7.0-grpc \
+ php7.0-http \
+ php7.0-igbinary \
+ php7.0-imagick \
+ php7.0-imap \
+ php7.0-inotify \
+ php7.0-interbase \
+ php7.0-intl \
+ php7.0-json \
+ php7.0-ldap \
+ php7.0-libvirt-php \
+ php7.0-lua \
+ php7.0-lz4 \
+ php7.0-mailparse \
+ php7.0-mbstring \
+ php7.0-mcrypt \
+ php7.0-memcache \
+ php7.0-memcached \
+ php7.0-mongodb \
+ php7.0-msgpack \
+ php7.0-mysql \
+ php7.0-oauth \
+ php7.0-odbc \
+ php7.0-opcache \
+ php7.0-pgsql \
+ php7.0-phpdbg \
+ php7.0-pinba \
+# php7.0-pq \
+ php7.0-propro \
+ php7.0-protobuf \
+ php7.0-ps \
+ php7.0-pspell \
+ php7.0-radius \
+ php7.0-raphf \
+ php7.0-rdkafka \
+ php7.0-readline \
+ php7.0-recode \
+ php7.0-redis \
+ php7.0-rrd \
+ php7.0-smbclient \
+ php7.0-snmp \
+ php7.0-soap \
+ php7.0-sodium \
+ php7.0-solr \
+ php7.0-sqlite3 \
+ php7.0-ssh2 \
+ php7.0-stomp \
+ php7.0-sybase \
+ php7.0-tideways \
+ php7.0-tidy \
+ php7.0-uploadprogress \
+ php7.0-uuid \
+ php7.0-vips \
+ php7.0-xdebug \
+ php7.0-xhprof \
+ php7.0-xml \
+ php7.0-xmlrpc \
+ php7.0-xsl \
+# php7.0-yac \
+ php7.0-yaml \
+ php7.0-zip \
+ php7.0-zmq \
+ php7.0-zstd \
+ smbclient \
+ libsmbclient \
+ sendmail && \
+ ln -sfv /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \
+ apt-get remove -y \
+ php5.6* \
+# php7.0* \
+ php7.1* \
+ php7.2* \
+ php7.3* \
+ php7.4* \
+ php8.0* \
+ php8.1* \
+ php8.2* \
+ php8.3* \
+ php8.4* && \
+ rm -rfv /etc/php/{5.6,7.1,7.2,7.3,7.4,8.0,8.1,8.2,8.3,8.4} && \
+ update-alternatives --set php /usr/bin/php7.0 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# Enabling extensions
+##################################################################
+RUN phpenmod \
+ calendar \
+ ldap \
+ curl \
+ exif \
+ ftp \
+ fileinfo \
+ gd \
+ geoip \
+ iconv \
+ imap \
+ json \
+ mbstring \
+ mysqli \
+ mysqlnd \
+ oauth \
+ pdo_mysql \
+ pdo_sqlite \
+ phar \
+ posix \
+ readline \
+ redis \
+ simplexml \
+ sockets \
+ sqlite3 \
+ ssh2 \
+ tokenizer \
+ xml \
+ xmlreader \
+ xmlrpc \
+ xmlwriter \
+ xsl \
+ yaml && \
+ phpdismod \
+ xdebug \
+ xcache \
+ xhprof \
+ tideways \
+ pcov \
+ swoole \
+ grpc \
+ uopz && \
+ php -m && \
+ php -v
+
+##############################################################################
+# Cassandra CPP Support Install
+##############################################################################
+COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb
+COPY addons/libssl1.1_1.1.1_amd64.deb /tmp/cassandra-php-driver/libssl1.1_1.1.1_amd64.deb
+RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb
+
+RUN cd /tmp/cassandra-php-driver && \
+ dpkg -i ./libssl1.1_1.1.1_amd64.deb && \
+ dpkg -i ./multiarch-support_2.28_amd64.deb && \
+ dpkg -i ./libuv1_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb
+
+##############################################################################
+# Cassandra PHP Drivers Install
+##############################################################################
+RUN pecl install cassandra && \
+ echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \
+# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing timezonedb addon
+##################################################################
+RUN pecl install timezonedb && \
+# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Bolt addon
+##################################################################
+#ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.5.zip /tmp/phpBolt.zip
+COPY usr/lib/php/20151012/phpBolt-extension-1.0.5-php70.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php70.so
+#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php70.so" >> ${PHP_DIR}/apache2/php.ini && \
+RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php70.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php70.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php70.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing IOnCube addon
+##################################################################
+ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz
+RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \
+ cp /tmp/ioncube/ioncube_loader_lin_7.0.so ${PHP_MODULE_PATH} && \
+# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.0.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing P4 addon
+##################################################################
+COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH}
+RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \
+# ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Composer addon
+##################################################################
+RUN cd /tmp && \
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
+ php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
+ rm /tmp/composer-setup.php
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/php70/Makefile b/linux/ecosystem/github/runner/php70/Makefile
new file mode 100644
index 000000000..b88fa3708
--- /dev/null
+++ b/linux/ecosystem/github/runner/php70/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+deploy:
+ make deploy-kaniko
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/php70/README.md b/linux/ecosystem/github/runner/php70/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/php70/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/php70/addons/libssl1.1_1.1.1_amd64.deb b/linux/ecosystem/github/runner/php70/addons/libssl1.1_1.1.1_amd64.deb
new file mode 100644
index 000000000..67b5d7314
Binary files /dev/null and b/linux/ecosystem/github/runner/php70/addons/libssl1.1_1.1.1_amd64.deb differ
diff --git a/linux/ecosystem/github/runner/php70/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/github/runner/php70/addons/multiarch-support_2.28_amd64.deb
new file mode 100644
index 000000000..7cf23ffa8
Binary files /dev/null and b/linux/ecosystem/github/runner/php70/addons/multiarch-support_2.28_amd64.deb differ
diff --git a/linux/ecosystem/github/runner/php70/docker-compose.yml b/linux/ecosystem/github/runner/php70/docker-compose.yml
new file mode 100644
index 000000000..d840539ae
--- /dev/null
+++ b/linux/ecosystem/github/runner/php70/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:php7.0"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/php70/usr/lib/php/20151012/phpBolt-extension-1.0.4-php70.so b/linux/ecosystem/github/runner/php70/usr/lib/php/20151012/phpBolt-extension-1.0.4-php70.so
new file mode 100644
index 000000000..e6d3abfda
Binary files /dev/null and b/linux/ecosystem/github/runner/php70/usr/lib/php/20151012/phpBolt-extension-1.0.4-php70.so differ
diff --git a/linux/ecosystem/github/runner/php70/usr/lib/php/20151012/phpBolt-extension-1.0.5-php70.so b/linux/ecosystem/github/runner/php70/usr/lib/php/20151012/phpBolt-extension-1.0.5-php70.so
new file mode 100644
index 000000000..e6d3abfda
Binary files /dev/null and b/linux/ecosystem/github/runner/php70/usr/lib/php/20151012/phpBolt-extension-1.0.5-php70.so differ
diff --git a/linux/ecosystem/github/runner/php71/Dockerfile b/linux/ecosystem/github/runner/php71/Dockerfile
new file mode 100644
index 000000000..2636469fd
--- /dev/null
+++ b/linux/ecosystem/github/runner/php71/Dockerfile
@@ -0,0 +1,386 @@
+FROM quay.io/epicmorg/debian:bookworm-develop AS builder
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# ARGuments
+##################################################################
+
+
+ARG BUILDS_DIR=/builds
+ARG SRC_DIR=${BUILDS_DIR}/src
+ARG EXPORT_DIR=${BUILDS_DIR}/export
+ARG P4API_DIR=${SRC_DIR}/p4api
+ARG P4PHP_DIR=${SRC_DIR}/p4php
+ARG MAKE_DIR=${SRC_DIR}/p4php-7.1
+
+ARG P4API_VER=r20.1
+ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz
+
+ARG P4PHP_VER=r20.1
+ARG P4PHP_URL=http://filehost.perforce.com/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz
+
+ARG P4MODULE_PATH=/usr/lib/php/20160303
+
+##################################################################
+# Files and folders
+##################################################################
+RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR}
+
+##################################################################
+# Installing PHP7
+##################################################################
+#installing PHP repo
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+#Install base packages
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+# php-pear \
+ php7.1 \
+ php7.1-common \
+ php7.1-dev \
+ php7.1-fpm \
+ php7.1-cli \
+ php7.1-xml \
+ php7.1-cgi && \
+ update-alternatives --set php /usr/bin/php7.1 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# preparing p4src
+##################################################################
+RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \
+ wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ cd ${P4API_DIR} && \
+ ls -las && \
+ cd ${P4PHP_DIR} && \
+ ls -las && \
+ cd ${MAKE_DIR} && \
+ ls -las && \
+ cd ${SRC_DIR} && \
+ ls -las
+
+##################################################################
+# compilling p4src
+##################################################################
+RUN cd ${MAKE_DIR} && \
+ ls -las && \
+ phpize && \
+ ./configure --with-perforce=${P4API_DIR} && \
+ make && \
+ make test && \
+ make install && \
+ cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR}
+
+##################################################################
+##################################################################
+##################################################################
+
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ENV PHP_VER=7.1
+ENV PHP_MODULE_PATH=/usr/lib/php/20160303
+ENV PHP_DIR=/etc/php/${PHP_VER}
+ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini
+ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini
+
+##################################################################
+# Installing PHP7
+##################################################################
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+ libgmp-dev \
+# php-pear \
+ php7.1 \
+ php7.1-cli \
+ php7.1-common \
+ php7.1-dev \
+ php7.1-amqp \
+ php7.1-apcu-bc \
+ php7.1-apcu \
+ php7.1-bcmath \
+ php7.1-bz2 \
+ php7.1-cgi \
+ php7.1-curl \
+ php7.1-dba \
+ php7.1-decimal \
+ php7.1-dio \
+ php7.1-ds \
+ php7.1-enchant \
+ php7.1-excimer \
+ php7.1-fpm \
+ php7.1-gd \
+ php7.1-gearman \
+ php7.1-geoip \
+# php7.1-gmagick \
+ php7.1-gmp \
+ php7.1-gnupg \
+ php7.1-grpc \
+ php7.1-http \
+ php7.1-igbinary \
+ php7.1-imagick \
+ php7.1-imap \
+ php7.1-inotify \
+ php7.1-interbase \
+ php7.1-intl \
+ php7.1-json \
+ php7.1-ldap \
+ php7.1-libvirt-php \
+ php7.1-lua \
+ php7.1-lz4 \
+ php7.1-mailparse \
+ php7.1-mbstring \
+ php7.1-mcrypt \
+ php7.1-memcache \
+ php7.1-memcached \
+ php7.1-mongodb \
+ php7.1-msgpack \
+ php7.1-mysql \
+ php7.1-oauth \
+ php7.1-odbc \
+ php7.1-opcache \
+ php7.1-pcov \
+ php7.1-pgsql \
+ php7.1-phpdbg \
+ php7.1-pinba \
+# php7.1-pq \
+ php7.1-propro \
+ php7.1-protobuf \
+ php7.1-ps \
+ php7.1-pspell \
+ php7.1-radius \
+ php7.1-raphf \
+ php7.1-rdkafka \
+ php7.1-readline \
+ php7.1-recode \
+ php7.1-redis \
+ php7.1-rrd \
+ php7.1-smbclient \
+ php7.1-snmp \
+ php7.1-soap \
+ php7.1-sodium \
+ php7.1-solr \
+ php7.1-sqlite3 \
+ php7.1-ssh2 \
+ php7.1-stomp \
+ php7.1-sybase \
+ php7.1-tideways \
+ php7.1-tidy \
+ php7.1-uopz \
+ php7.1-uploadprogress \
+ php7.1-uuid \
+ php7.1-vips \
+ php7.1-xdebug \
+ php7.1-xhprof \
+ php7.1-xml \
+ php7.1-xmlrpc \
+ php7.1-xsl \
+# php7.1-yac \
+ php7.1-yaml \
+ php7.1-zip \
+ php7.1-zmq \
+ php7.1-zstd \
+ smbclient \
+ libsmbclient \
+ sendmail && \
+ ln -sfv /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \
+ apt-get remove -y \
+ php5.6* \
+ php7.0* \
+# php7.1* \
+ php7.2* \
+ php7.3* \
+ php7.4* \
+ php8.0* \
+ php8.1* \
+ php8.2* \
+ php8.3* \
+ php8.4* && \
+ rm -rfv /etc/php/{5.6,7.0,7.2,7.3,7.4,8.0,8.1,8.2,8.3,8.4} && \
+ update-alternatives --set php /usr/bin/php7.1 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# Enabling extensions
+##################################################################
+RUN phpenmod \
+ calendar \
+ ldap \
+ curl \
+ exif \
+ ftp \
+ fileinfo \
+ gd \
+ geoip \
+ iconv \
+ imap \
+ json \
+ mbstring \
+ mysqli \
+ mysqlnd \
+ oauth \
+ pdo_mysql \
+ pdo_sqlite \
+ phar \
+ posix \
+ readline \
+ redis \
+ simplexml \
+ sockets \
+ sqlite3 \
+ ssh2 \
+ tokenizer \
+ xml \
+ xmlreader \
+ xmlrpc \
+ xmlwriter \
+ xsl \
+ yaml && \
+ phpdismod \
+ xdebug \
+ xcache \
+ xhprof \
+ tideways \
+ pcov \
+ swoole \
+ grpc \
+ uopz && \
+ php -m && \
+ php -v
+
+##############################################################################
+# Cassandra CPP Support Install
+##############################################################################
+COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb
+COPY addons/libssl1.1_1.1.1_amd64.deb /tmp/cassandra-php-driver/libssl1.1_1.1.1_amd64.deb
+RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb
+
+RUN cd /tmp/cassandra-php-driver && \
+ dpkg -i ./libssl1.1_1.1.1_amd64.deb && \
+ dpkg -i ./multiarch-support_2.28_amd64.deb && \
+ dpkg -i ./libuv1_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb
+
+##############################################################################
+# Cassandra PHP Drivers Install
+##############################################################################
+RUN pecl install cassandra && \
+ echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \
+# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing timezonedb addon
+##################################################################
+RUN pecl install timezonedb && \
+# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Bolt addon
+##################################################################
+#ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.5.zip /tmp/phpBolt.zip
+COPY usr/lib/php/20160303/phpBolt-extension-1.0.5-php71.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php71.so
+#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php71.so" >> ${PHP_DIR}/apache2/php.ini && \
+RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php71.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php71.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php71.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing IOnCube addon
+##################################################################
+ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz
+RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \
+ cp /tmp/ioncube/ioncube_loader_lin_7.1.so ${PHP_MODULE_PATH} && \
+# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.1.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing P4 addon
+##################################################################
+COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH}
+RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \
+# ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Composer addon
+##################################################################
+RUN cd /tmp && \
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
+ php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
+ rm /tmp/composer-setup.php
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/php71/Makefile b/linux/ecosystem/github/runner/php71/Makefile
new file mode 100644
index 000000000..b88fa3708
--- /dev/null
+++ b/linux/ecosystem/github/runner/php71/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+deploy:
+ make deploy-kaniko
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/php71/README.md b/linux/ecosystem/github/runner/php71/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/php71/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/php71/addons/libssl1.1_1.1.1_amd64.deb b/linux/ecosystem/github/runner/php71/addons/libssl1.1_1.1.1_amd64.deb
new file mode 100644
index 000000000..67b5d7314
Binary files /dev/null and b/linux/ecosystem/github/runner/php71/addons/libssl1.1_1.1.1_amd64.deb differ
diff --git a/linux/ecosystem/github/runner/php71/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/github/runner/php71/addons/multiarch-support_2.28_amd64.deb
new file mode 100644
index 000000000..7cf23ffa8
Binary files /dev/null and b/linux/ecosystem/github/runner/php71/addons/multiarch-support_2.28_amd64.deb differ
diff --git a/linux/ecosystem/github/runner/php71/docker-compose.yml b/linux/ecosystem/github/runner/php71/docker-compose.yml
new file mode 100644
index 000000000..1cac4fe37
--- /dev/null
+++ b/linux/ecosystem/github/runner/php71/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:php7.1"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/php71/usr/lib/php/20160303/phpBolt-extension-1.0.4-php71.so b/linux/ecosystem/github/runner/php71/usr/lib/php/20160303/phpBolt-extension-1.0.4-php71.so
new file mode 100644
index 000000000..75149ffcf
Binary files /dev/null and b/linux/ecosystem/github/runner/php71/usr/lib/php/20160303/phpBolt-extension-1.0.4-php71.so differ
diff --git a/linux/ecosystem/github/runner/php71/usr/lib/php/20160303/phpBolt-extension-1.0.5-php71.so b/linux/ecosystem/github/runner/php71/usr/lib/php/20160303/phpBolt-extension-1.0.5-php71.so
new file mode 100644
index 000000000..75149ffcf
Binary files /dev/null and b/linux/ecosystem/github/runner/php71/usr/lib/php/20160303/phpBolt-extension-1.0.5-php71.so differ
diff --git a/linux/ecosystem/github/runner/php72/Dockerfile b/linux/ecosystem/github/runner/php72/Dockerfile
new file mode 100644
index 000000000..37d82d33c
--- /dev/null
+++ b/linux/ecosystem/github/runner/php72/Dockerfile
@@ -0,0 +1,388 @@
+FROM quay.io/epicmorg/debian:bookworm-develop AS builder
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# ARGuments
+##################################################################
+
+
+ARG BUILDS_DIR=/builds
+ARG SRC_DIR=${BUILDS_DIR}/src
+ARG EXPORT_DIR=${BUILDS_DIR}/export
+ARG P4API_DIR=${SRC_DIR}/p4api
+ARG P4PHP_DIR=${SRC_DIR}/p4php
+ARG MAKE_DIR=${SRC_DIR}/p4php-7.2
+
+ARG P4API_VER=r20.1
+ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz
+
+ARG P4PHP_VER=r20.1
+ARG P4PHP_URL=http://filehost.perforce.com/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz
+
+ARG P4MODULE_PATH=/usr/lib/php/20170718
+
+##################################################################
+# Files and folders
+##################################################################
+RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR}
+
+##################################################################
+# Installing PHP7
+##################################################################
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+#Install base packages
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+# php-pear \
+ php7.2 \
+ php7.2-common \
+ php7.2-dev \
+ php7.2-fpm \
+ php7.2-cli \
+ php7.2-xml \
+ php7.2-cgi && \
+ update-alternatives --set php /usr/bin/php7.2 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# preparing p4src
+##################################################################
+RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \
+ wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ cd ${P4API_DIR} && \
+ ls -las && \
+ cd ${P4PHP_DIR} && \
+ ls -las && \
+ cd ${MAKE_DIR} && \
+ ls -las && \
+ cd ${SRC_DIR} && \
+ ls -las
+
+##################################################################
+# compilling p4src
+##################################################################
+RUN cd ${MAKE_DIR} && \
+ ls -las && \
+ phpize && \
+ ./configure --with-perforce=${P4API_DIR} && \
+ make && \
+ make test && \
+ make install && \
+ cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR}
+
+##################################################################
+##################################################################
+##################################################################
+
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ENV PHP_MODULE_PATH=/usr/lib/php/20170718
+ENV PHP_VER=7.2
+ENV PHP_DIR=/etc/php/${PHP_VER}
+ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini
+ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini
+
+##################################################################
+# Installing PHP7
+##################################################################
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+ libgmp-dev \
+# php-pear \
+ php7.2 \
+ php7.2-cli \
+ php7.2-common \
+ php7.2-dev \
+ php7.2-amqp \
+ php7.2-apcu-bc \
+ php7.2-apcu \
+ php7.2-ast \
+ php7.2-bcmath \
+ php7.2-bz2 \
+ php7.2-cgi \
+ php7.2-curl \
+ php7.2-dba \
+ php7.2-decimal \
+ php7.2-dio \
+ php7.2-ds \
+ php7.2-enchant \
+ php7.2-excimer \
+ php7.2-fpm \
+ php7.2-gd \
+ php7.2-gearman \
+ php7.2-geoip \
+# php7.2-gmagick \
+ php7.2-gmp \
+ php7.2-gnupg \
+ php7.2-grpc \
+ php7.2-http \
+ php7.2-igbinary \
+ php7.2-imagick \
+ php7.2-imap \
+ php7.2-inotify \
+ php7.2-interbase \
+ php7.2-intl \
+ php7.2-json \
+ php7.2-ldap \
+ php7.2-libvirt-php \
+ php7.2-lua \
+ php7.2-lz4 \
+ php7.2-mailparse \
+ php7.2-maxminddb \
+ php7.2-mbstring \
+ php7.2-mcrypt \
+ php7.2-memcache \
+ php7.2-memcached \
+ php7.2-mongodb \
+ php7.2-msgpack \
+ php7.2-mysql \
+ php7.2-oauth \
+ php7.2-odbc \
+ php7.2-opcache \
+ php7.2-pcov \
+ php7.2-pgsql \
+# php7.2-phalcon4 \
+ php7.2-phpdbg \
+ php7.2-pinba \
+# php7.2-pq \
+ php7.2-propro \
+ php7.2-protobuf \
+ php7.2-ps \
+ php7.2-pspell \
+ php7.2-radius \
+ php7.2-raphf \
+ php7.2-rdkafka \
+ php7.2-readline \
+ php7.2-recode \
+ php7.2-redis \
+ php7.2-rrd \
+ php7.2-smbclient \
+ php7.2-snmp \
+ php7.2-soap \
+ php7.2-solr \
+ php7.2-sqlite3 \
+ php7.2-ssh2 \
+ php7.2-stomp \
+ php7.2-sybase \
+ php7.2-tideways \
+ php7.2-tidy \
+ php7.2-uopz \
+ php7.2-uploadprogress \
+ php7.2-uuid \
+ php7.2-vips \
+ php7.2-xdebug \
+ php7.2-xhprof \
+ php7.2-xml \
+ php7.2-xmlrpc \
+ php7.2-xsl \
+# php7.2-yac \
+ php7.2-yaml \
+ php7.2-zip \
+ php7.2-zmq \
+ php7.2-zstd \
+ smbclient \
+ libsmbclient \
+ sendmail && \
+ ln -sfv /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \
+ apt-get remove -y \
+ php5.6* \
+ php7.0* \
+ php7.1* \
+# php7.2* \
+ php7.3* \
+ php7.4* \
+ php8.0* \
+ php8.1* \
+ php8.2* \
+ php8.3* \
+ php8.4* && \
+ rm -rfv /etc/php/{5.6,7.0,7.1,7.3,7.4,8.0,8.1,8.2,8.3,8.4} && \
+ update-alternatives --set php /usr/bin/php7.2 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# Enabling extensions
+##################################################################
+RUN phpenmod \
+ calendar \
+ ldap \
+ curl \
+ exif \
+ ftp \
+ fileinfo \
+ gd \
+ geoip \
+ iconv \
+ imap \
+ json \
+ mbstring \
+ mysqli \
+ mysqlnd \
+ oauth \
+ pdo_mysql \
+ pdo_sqlite \
+ phar \
+ posix \
+ readline \
+ redis \
+ simplexml \
+ sockets \
+ sqlite3 \
+ ssh2 \
+ tokenizer \
+ xml \
+ xmlreader \
+ xmlrpc \
+ xmlwriter \
+ xsl \
+ yaml && \
+ phpdismod \
+ xdebug \
+ xcache \
+ xhprof \
+ tideways \
+ pcov \
+ swoole \
+ grpc \
+ uopz && \
+ php -m && \
+ php -v
+
+##############################################################################
+# Cassandra CPP Support Install
+##############################################################################
+COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb
+COPY addons/libssl1.1_1.1.1_amd64.deb /tmp/cassandra-php-driver/libssl1.1_1.1.1_amd64.deb
+RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb
+
+RUN cd /tmp/cassandra-php-driver && \
+ dpkg -i ./libssl1.1_1.1.1_amd64.deb && \
+ dpkg -i ./multiarch-support_2.28_amd64.deb && \
+ dpkg -i ./libuv1_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb
+
+##############################################################################
+# Cassandra PHP Drivers Install
+##############################################################################
+#RUN pecl install cassandra && \
+COPY usr/lib/php/20170718/cassandra.so ${PHP_MODULE_PATH}/cassandra.so
+RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \
+# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing timezonedb addon
+##################################################################
+RUN pecl install timezonedb && \
+# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Bolt addon
+##################################################################
+#ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.5.zip /tmp/phpBolt.zip
+COPY usr/lib/php/20170718/phpBolt-extension-1.0.5-php72.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php72.so
+#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php72.so" >> ${PHP_DIR}/apache2/php.ini && \
+RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php72.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php72.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php72.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing IOnCube addon
+##################################################################
+ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz
+RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \
+ cp /tmp/ioncube/ioncube_loader_lin_7.2.so ${PHP_MODULE_PATH} && \
+# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.2.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing P4 addon
+##################################################################
+COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH}
+RUN echo "extension= ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \
+# ln -sf ${P4_PHP_INI} ${PHP_DIR}/apache2/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Composer addon
+##################################################################
+RUN cd /tmp && \
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
+ php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
+ rm /tmp/composer-setup.php
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/php72/Makefile b/linux/ecosystem/github/runner/php72/Makefile
new file mode 100644
index 000000000..b88fa3708
--- /dev/null
+++ b/linux/ecosystem/github/runner/php72/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+deploy:
+ make deploy-kaniko
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/php72/README.md b/linux/ecosystem/github/runner/php72/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/php72/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL=""
+ -v :C:/BuildAgent/conf
+ jetbrains/teamcity-minimal-agent
+```
+where `` is the full URL for TeamCity server, accessible by the agent. Note that `localhost` will not generally not work as it will refer to the `localhost` inside the container.
+`` is the host machine directory to serve as the TeamCity agent config directory. We recommend providing this binding in order to persist the agent configuration, e.g. authorization on the server. Note that you should map a different folder for every new agent you create.
+
+Since version 2020.1, TeamCity agent Docker images __run under a non-root user__. Refer to our [upgrade notes](https://www.jetbrains.com/help/teamcity/upgrade-notes.html#UpgradeNotes-AgentDockerimagesrunundernon-rootuser) for information on possible affected use cases.
+
+When you run the agent for the first time, you should authorize it via the TeamCity server UI: go to the **Unauthorized Agents** page in your browser. See [more details](https://www.jetbrains.com/help/teamcity/build-agent.html).
+
+All information about agent authorization is stored in agent's configuration folder. If you stop the container with the agent and then start a new one with the same config folder, the agent's name and authorization state will be preserved.
+
+TeamCity agent does not need manual upgrade: it will upgrade itself automatically on connecting to an upgraded server.
+
+### Agent Image Environment Variables
+
+- **SERVER_URL** - URL of the TeamCity server agent will connect to
+- **AGENT_NAME** - (optional) Name of the agent in TeamCity UI, autogenerated if omitted
+- **AGENT_TOKEN** - (optional) Agent authorization token, if unset, the agent should be [authorized](https://www.jetbrains.com/help/teamcity/build-agent.html#BuildAgent-BuildAgentStatus) via TeamCity UI.
+- **OWN_ADDRESS** - (optional, linux only) IP address build agent binds to, autodetected
+- **OWN_PORT** - (optional, linux only) Port build agent binds to, 9090 by default
+
+### Windows Containers Limitations
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+## Customization
+
+You can customize the image via the usual Docker procedure:
+
+1. Run the image
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ --name="my-customized-agent" \
+ jetbrains/teamcity-minimal-agent \
+```
+2. Enter the container
+```
+docker exec -it my-customized-agent bash
+```
+
+3. Change whatever you need
+4. Exit and [create a new image](https://docs.docker.com/engine/reference/commandline/commit/) from the container
+```
+docker commit my-customized-agent
+```
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [TeamCity Server](https://hub.docker.com/r/jetbrains/teamcity-server/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/github-runner/)
diff --git a/linux/ecosystem/github/runner/php72/addons/libssl1.1_1.1.1_amd64.deb b/linux/ecosystem/github/runner/php72/addons/libssl1.1_1.1.1_amd64.deb
new file mode 100644
index 000000000..67b5d7314
Binary files /dev/null and b/linux/ecosystem/github/runner/php72/addons/libssl1.1_1.1.1_amd64.deb differ
diff --git a/linux/ecosystem/github/runner/php72/addons/multiarch-support_2.28_amd64.deb b/linux/ecosystem/github/runner/php72/addons/multiarch-support_2.28_amd64.deb
new file mode 100644
index 000000000..7cf23ffa8
Binary files /dev/null and b/linux/ecosystem/github/runner/php72/addons/multiarch-support_2.28_amd64.deb differ
diff --git a/linux/ecosystem/github/runner/php72/docker-compose.yml b/linux/ecosystem/github/runner/php72/docker-compose.yml
new file mode 100644
index 000000000..7e3ef3b33
--- /dev/null
+++ b/linux/ecosystem/github/runner/php72/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/github-runner:php7.2"
+ build:
+ context: .
diff --git a/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/cassandra.so b/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/cassandra.so
new file mode 100644
index 000000000..fb54b0cbd
Binary files /dev/null and b/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/cassandra.so differ
diff --git a/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/phpBolt-extension-1.0.4-php72.so b/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/phpBolt-extension-1.0.4-php72.so
new file mode 100644
index 000000000..d4aac7cd7
Binary files /dev/null and b/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/phpBolt-extension-1.0.4-php72.so differ
diff --git a/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/phpBolt-extension-1.0.5-php72.so b/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/phpBolt-extension-1.0.5-php72.so
new file mode 100644
index 000000000..d4aac7cd7
Binary files /dev/null and b/linux/ecosystem/github/runner/php72/usr/lib/php/20170718/phpBolt-extension-1.0.5-php72.so differ
diff --git a/linux/ecosystem/github/runner/php73/Dockerfile b/linux/ecosystem/github/runner/php73/Dockerfile
new file mode 100644
index 000000000..e4d767897
--- /dev/null
+++ b/linux/ecosystem/github/runner/php73/Dockerfile
@@ -0,0 +1,392 @@
+FROM quay.io/epicmorg/debian:bookworm-develop AS builder
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# ARGuments
+##################################################################
+
+
+ARG BUILDS_DIR=/builds
+ARG SRC_DIR=${BUILDS_DIR}/src
+ARG EXPORT_DIR=${BUILDS_DIR}/export
+ARG P4API_DIR=${SRC_DIR}/p4api
+ARG P4PHP_DIR=${SRC_DIR}/p4php
+ARG MAKE_DIR=${SRC_DIR}/p4php-7.3
+
+ARG P4API_VER=r20.1
+ARG P4API_URL=http://filehost.perforce.com/perforce/${P4API_VER}/bin.linux26x86_64/p4api.tgz
+
+ARG P4PHP_VER=r20.1
+ARG P4PHP_URL=http://filehost.perforce.com/perforce/${P4PHP_VER}/bin.tools/p4php-php7.tgz
+
+ARG P4MODULE_PATH=/usr/lib/php/20180731
+
+##################################################################
+# Files and folders
+##################################################################
+RUN mkdir -p ${BUILDS_DIR} ${SRC_DIR} ${EXPORT_DIR} ${MAKE_DIR} ${P4API_DIR} ${P4PHP_DIR}
+
+##################################################################
+# Installing PHP7
+##################################################################
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+#Install base packages
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+# php-pear \
+ php7.3 \
+ php7.3-common \
+ php7.3-dev \
+ php7.3-fpm \
+ php7.3-cli \
+ php7.3-xml \
+ php7.3-cgi && \
+ update-alternatives --set php /usr/bin/php7.3 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# preparing p4src
+##################################################################
+RUN wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${P4API_DIR} && \
+ wget -qO - ${P4API_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${P4PHP_DIR} && \
+ wget -qO - ${P4PHP_URL} | tar -zxv --strip-components=1 -C ${MAKE_DIR} && \
+ cd ${P4API_DIR} && \
+ ls -las && \
+ cd ${P4PHP_DIR} && \
+ ls -las && \
+ cd ${MAKE_DIR} && \
+ ls -las && \
+ cd ${SRC_DIR} && \
+ ls -las
+
+##################################################################
+# compilling p4src
+##################################################################
+RUN cd ${MAKE_DIR} && \
+ ls -las && \
+ phpize && \
+ ./configure --with-perforce=${P4API_DIR} && \
+ make && \
+ make test && \
+ make install && \
+ cp ${P4MODULE_PATH}/perforce.so ${EXPORT_DIR}
+
+##################################################################
+##################################################################
+##################################################################
+
+FROM quay.io/epicmorg/github-runner:minimal
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+ENV PHP_MODULE_PATH=/usr/lib/php/20180731
+ENV PHP_VER=7.3
+ENV PHP_DIR=/etc/php/${PHP_VER}
+ARG P4_PHP_INI=${PHP_DIR}/mods-available/perfroce.ini
+ARG CAS_PHP_INI=${PHP_DIR}/mods-available/cassandra.ini
+
+##################################################################
+# Installing PHP7
+##################################################################
+RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.su/php/apt.gpg
+RUN sh -c 'echo "deb [trusted=yes] https://packages.sury.su/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
+
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated \
+ libmemcached-dev \
+ libgmp-dev \
+# php-pear \
+ php7.3 \
+ php7.3-cli \
+ php7.3-common \
+ php7.3-dev \
+ php7.3-amqp \
+ php7.3-apcu-bc \
+ php7.3-apcu \
+ php7.3-ast \
+ php7.3-bcmath \
+ php7.3-bz2 \
+ php7.3-cgi \
+ php7.3-curl \
+ php7.3-dba \
+ php7.3-decimal \
+ php7.3-dio \
+ php7.3-ds \
+ php7.3-enchant \
+ php7.3-excimer \
+ php7.3-fpm \
+ php7.3-gd \
+ php7.3-gearman \
+ php7.3-geoip \
+# php7.3-gmagick \
+ php7.3-gmp \
+ php7.3-gnupg \
+ php7.3-grpc \
+ php7.3-http \
+ php7.3-igbinary \
+ php7.3-imagick \
+ php7.3-imap \
+ php7.3-inotify \
+ php7.3-interbase \
+ php7.3-intl \
+ php7.3-json \
+ php7.3-ldap \
+ php7.3-libvirt-php \
+ php7.3-lua \
+ php7.3-lz4 \
+ php7.3-mailparse \
+ php7.3-maxminddb \
+ php7.3-mbstring \
+ php7.3-mcrypt \
+ php7.3-memcache \
+ php7.3-memcached \
+ php7.3-mongodb \
+ php7.3-msgpack \
+ php7.3-mysql \
+ php7.3-oauth \
+ php7.3-odbc \
+ php7.3-opcache \
+ php7.3-pcov \
+ php7.3-pgsql \
+# php7.3-phalcon4 \
+ php7.3-phpdbg \
+ php7.3-pinba \
+# php7.3-pq \
+ php7.3-propro \
+ php7.3-protobuf \
+ php7.3-ps \
+ php7.3-pspell \
+# php7.3-psr \
+ php7.3-radius \
+ php7.3-raphf \
+ php7.3-rdkafka \
+ php7.3-readline \
+ php7.3-recode \
+ php7.3-redis \
+ php7.3-rrd \
+ php7.3-smbclient \
+ php7.3-snmp \
+ php7.3-soap \
+ php7.3-solr \
+ php7.3-sqlite3 \
+ php7.3-ssh2 \
+ php7.3-stomp \
+ php7.3-sybase \
+ php7.3-tideways \
+ php7.3-tidy \
+ php7.3-uopz \
+ php7.3-uploadprogress \
+ php7.3-uuid \
+ php7.3-vips \
+ php7.3-xdebug \
+ php7.3-xhprof \
+ php7.3-xml \
+ php7.3-xmlrpc \
+ php7.3-xsl \
+# php7.3-yac \
+ php7.3-yaml \
+ php7.3-zip \
+ php7.3-zmq \
+ php7.3-zstd \
+ smbclient \
+ libsmbclient \
+ sendmail && \
+ ln -sfv /etc/ssl/dhparam.pem /etc/php/dhparam.pem && \
+ apt-get remove -y \
+ php5.6* \
+ php7.0* \
+ php7.1* \
+ php7.2* \
+# php7.3* \
+ php7.4* \
+ php8.0* \
+ php8.1* \
+ php8.2* \
+ php8.3* \
+ php8.4* && \
+ rm -rfv /etc/php/{5.6,7.0,7.1,7.2,7.4,8.0,8.1,8.2,8.3,8.4} && \
+ update-alternatives --set php /usr/bin/php7.3 && \
+# pear clear-cache && \
+ pear update-channels && \
+# pear upgrade && \
+ pecl channel-update pecl.php.net
+
+RUN echo "=============================================" && \
+ echo php -m $(php -m) && \
+ echo php -v $(php -v) && \
+ echo pear version $(pear version) && \
+ echo pear list $(pear list) && \
+ echo "============================================="
+
+##################################################################
+# Enabling extensions
+##################################################################
+RUN phpenmod \
+ snmp \
+ gmp \
+ calendar \
+ ldap \
+ curl \
+ exif \
+ ftp \
+ fileinfo \
+ gd \
+ geoip \
+ gettext \
+ iconv \
+ imap \
+ json \
+ mbstring \
+ memcached \
+ mysqli \
+ mysqlnd \
+ oauth \
+ pdo_mysql \
+ pdo_sqlite \
+ phar \
+ posix \
+ readline \
+ redis \
+ simplexml \
+ sockets \
+ sqlite3 \
+ ssh2 \
+ tokenizer \
+ xml \
+ xmlreader \
+ xmlrpc \
+ xmlwriter \
+ xsl \
+ yaml && \
+ phpdismod \
+ xdebug \
+ xcache \
+ xhprof \
+ tideways \
+ pcov \
+ swoole \
+ grpc \
+ uopz && \
+ php -m && \
+ php -v
+
+##############################################################################
+# Cassandra CPP Support Install
+##############################################################################
+COPY addons/multiarch-support_2.28_amd64.deb /tmp/cassandra-php-driver/multiarch-support_2.28_amd64.deb
+COPY addons/libssl1.1_1.1.1_amd64.deb /tmp/cassandra-php-driver/libssl1.1_1.1.1_amd64.deb
+RUN wget -c --random-wait --user-agent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36" --directory-prefix=/tmp/cassandra-php-driver \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dev_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/dependencies/libuv/v1.35.0/libuv1-dbg_1.35.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver-dev_2.16.0-1_amd64.deb \
+ https://downloads.datastax.com/cpp-driver/ubuntu/18.04/cassandra/v2.16.0/cassandra-cpp-driver_2.16.0-1_amd64.deb
+
+RUN cd /tmp/cassandra-php-driver && \
+ dpkg -i ./libssl1.1_1.1.1_amd64.deb && \
+ dpkg -i ./multiarch-support_2.28_amd64.deb && \
+ dpkg -i ./libuv1_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dev_1.35.0-1_amd64.deb && \
+ dpkg -i ./libuv1-dbg_1.35.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dev_2.16.0-1_amd64.deb && \
+ dpkg -i ./cassandra-cpp-driver-dbg_2.16.0-1_amd64.deb
+
+##############################################################################
+# Cassandra PHP Drivers Install
+##############################################################################
+#RUN pecl install cassandra && \
+COPY usr/lib/php/20180731/cassandra.so ${PHP_MODULE_PATH}/cassandra.so
+RUN echo "extension = ${PHP_MODULE_PATH}/cassandra.so" > ${CAS_PHP_INI} && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cgi/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/cli/conf.d/cassandra.ini && \
+ ln -sf ${CAS_PHP_INI} ${PHP_DIR}/fpm/conf.d/cassandra.ini && \
+# ln -sf ${CAS_PHP_INI} ${PHP_DIR}/apache2/conf.d/cassandra.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing timezonedb addon
+##################################################################
+RUN pecl install timezonedb && \
+# echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/timezonedb.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Bolt addon
+##################################################################
+#ADD https://phpbolt.com/wp-content/uploads/2023/03/phpBolt-extension-1.0.5.zip /tmp/phpBolt.zip
+COPY usr/lib/php/20180731/phpBolt-extension-1.0.5-php73.so ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php73.so
+#RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php73.so" >> ${PHP_DIR}/apache2/php.ini && \
+RUN echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php73.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php73.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "extension = ${PHP_MODULE_PATH}/phpBolt-extension-1.0.5-php73.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing IOnCube addon
+##################################################################
+ADD https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz /tmp/ioncube.tar.gz
+RUN tar -C /tmp -xvf /tmp/ioncube.tar.gz && \
+ cp /tmp/ioncube/ioncube_loader_lin_7.3.so ${PHP_MODULE_PATH} && \
+# echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/apache2/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/cgi/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/cli/php.ini && \
+ echo "zend_extension = ${PHP_MODULE_PATH}/ioncube_loader_lin_7.3.so" >> ${PHP_DIR}/fpm/php.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing P4 addon
+##################################################################
+COPY --from=builder /builds/export/perforce.so ${PHP_MODULE_PATH}
+RUN echo "extension = ${PHP_MODULE_PATH}/perforce.so" > ${P4_PHP_INI} && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cgi/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/cli/conf.d/perforce.ini && \
+ ln -sf ${P4_PHP_INI} ${PHP_DIR}/fpm/conf.d/perforce.ini && \
+ php -m && \
+ php -v
+
+##################################################################
+# Installing Composer addon
+##################################################################
+RUN cd /tmp && \
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
+ php composer-setup.php --install-dir=/usr/local/bin --filename=composer && \
+ rm /tmp/composer-setup.php
+
+##################################################################
+# Cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /var/cache/apt/archives/*.deb && \
+ rm -rfv /tmp/*
+
+##################################################################
+# final config
+##################################################################
+RUN updatedb
diff --git a/linux/ecosystem/github/runner/php73/Makefile b/linux/ecosystem/github/runner/php73/Makefile
new file mode 100644
index 000000000..b88fa3708
--- /dev/null
+++ b/linux/ecosystem/github/runner/php73/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+deploy:
+ make deploy-kaniko
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ buildah-wrapper --deploy
+
+build-kaniko:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy-compose:
+ docker-compose push
+
+clean:
+ docker container prune -f
+ docker image prune -f
+ docker network prune -f
+ docker volume prune -f
+ docker system prune -af
+ buildah rm -a
+ buildah rmi -a
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/github/runner/php73/README.md b/linux/ecosystem/github/runner/php73/README.md
new file mode 100644
index 000000000..38caaa1de
--- /dev/null
+++ b/linux/ecosystem/github/runner/php73/README.md
@@ -0,0 +1,93 @@
+## TeamCity Minimal Build Agent
+
+[
](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) minimal build agent image.
+
+
More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-minimal-agent.md).
+
+The [TeamCity build agent](https://www.jetbrains.com/help/teamcity/build-agent.html) connects to the TeamCity server and spawns the actual build processes.
+You can use the ```jetbrains/teamcity-server``` image to run a TeamCity server.
+
+This minimal image adds just a TeamCity agent without any tools like VCS clients, etc. It is suitable for simple builds and can serve as a base for your custom images. For Java or .NET development we recommend using the default build agent image [jetbrains/github-runner](https://hub.docker.com/r/jetbrains/github-runner/).
+
+## How to Use This Image
+
+Pull the TeamCity minimal image from the Docker Hub Repository:
+
+```
+jetbrains/teamcity-minimal-agent
+```
+
+and use the following command to start a container with TeamCity agent running inside
+a Linux container:
+
+```
+docker run -it -e SERVER_URL="" \
+ -v :/data/teamcity_agent/conf \
+ jetbrains/teamcity-minimal-agent
+```
+
+or a Windows container:
+```
+docker run -it -e SERVER_URL="