Skip to content

Build Docker Images / Push Programs To Server #636

Build Docker Images / Push Programs To Server

Build Docker Images / Push Programs To Server #636

name: Build Docker Images / Push Programs To Server
on:
workflow_dispatch:
schedule:
- cron: '0 */16 * * *'
jobs:
push_deb11_to_hub:
name: Push Debian 11 to Docker Hub
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Log in to Docker Hub
uses: docker/login-action@master
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@master
with:
images: lunamidori5/linux_model_deb_11
- name: Build and push Debian 11 Docker Image
uses: docker/build-push-action@master
with:
context: ./Subsystem-Manager/subsystem_docker_stuff/
file: ./Subsystem-Manager/subsystem_docker_stuff/midori-ai-pip-deb11-dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Clean up Docker Cache
run: |
docker image prune -f
push_subsystem_manager_to_hub:
name: Push Subsystem (Ubuntu Rolling) to Docker Hub
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Log in to Docker Hub
uses: docker/login-action@master
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
logout: false
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@master
with:
images: lunamidori5/subsystem_manager
- name: Build and push Subsystem (other os) Docker Image
uses: docker/build-push-action@master
with:
context: ./Subsystem-Manager/subsystem_docker_stuff/
file: ./Subsystem-Manager/subsystem_docker_stuff/midori-ai-subsystem-manager-dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Clean up Docker Cache
run: |
docker image prune -f
push_pixelarch_subsystem_topaz_to_hub:
name: Push Subsystem (PixelArch Rolling) to Docker Hub
runs-on: ubuntu-latest
needs: push_subsystem_manager_to_hub
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Log in to Docker Hub
uses: docker/login-action@master
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
logout: false
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@master
with:
images: lunamidori5/pixelarch
tags: |
type=raw,value=subsystem
- name: Build and push PixelArch OS (Subsystem Manager) Docker Image
uses: docker/build-push-action@master
with:
context: ./Subsystem-Manager/subsystem_docker_stuff/
file: ./Subsystem-Manager/subsystem_docker_stuff/midori-ai-subsystem-manager-pixelarch-dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
push_cpu_to_hub:
name: Push LocalAI CPU to Docker Hub
runs-on: self-hosted
needs: push_subsystem_manager_to_hub
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Log in to Docker Hub
uses: docker/login-action@master
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
logout: false
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@master
with:
images: lunamidori5/midori_ai_subsystem_localai_cpu
- name: Make Ver Tags (tags, labels) for Docker
id: sha
uses: docker/metadata-action@master
with:
images: lunamidori5/midori_ai_subsystem_localai_cpu
tags: |
type=sha,enable=true,priority=100,prefix={{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}-sha-,suffix=,format=short
- name: Build and push CPU LocalAI Docker image
uses: docker/build-push-action@master
with:
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-cpu
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Build and push CPU LocalAI Docker image
uses: docker/build-push-action@master
with:
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-cpu
push: true
tags: ${{ steps.sha.outputs.tags }}
labels: ${{ steps.sha.outputs.labels }}
- name: Clean up Docker Cache
run: |
docker image prune -a -f
docker system prune -a -f
push_gpu_to_hub:
name: Push LocalAI GPUs to Docker Hub
strategy:
matrix:
gpu_type: [intelf16, intelf32, hipblas, nvidia]
needs: push_subsystem_manager_to_hub
runs-on: self-hosted
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Log in to Docker Hub
uses: docker/login-action@master
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
logout: false
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@master
with:
images: lunamidori5/midori_ai_subsystem_localai_${{ matrix.gpu_type }}_gpu
- name: Make Ver Tags (tags, labels) for Docker
id: sha
uses: docker/metadata-action@master
with:
images: lunamidori5/midori_ai_subsystem_localai_${{ matrix.gpu_type }}_gpu
tags: |
type=sha,enable=true,priority=100,prefix={{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}-sha-,suffix=,format=short
- name: Build and push GPU LocalAI Docker image
uses: docker/build-push-action@master
with:
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-${{ matrix.gpu_type }}-gpu
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Build and push GPU LocalAI Docker image
uses: docker/build-push-action@master
with:
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-${{ matrix.gpu_type }}-gpu
push: true
tags: ${{ steps.sha.outputs.tags }}
labels: ${{ steps.sha.outputs.labels }}
clean_docker_mess:
name: Clean up Docker Cache
strategy:
matrix:
gpu_type: [1, 2, 3]
for_each: [1, 2, 3]
needs: push_gpu_to_hub
runs-on: self-hosted
steps:
- name: Clean up Docker Cache
run: |
nohup docker image prune -a -f &
nohup docker system prune -a -f &