docker: make images arm64-compatible (#2199)

* optimize multi-arch docker build on x86

* test

* test

* test

* test

* separate build

* separate build

* fix package versions

* also fixes the release

* orjson

* orjson

* fix cryptography

* fix duckdb

* all

* all

* fix

* use provenance
This commit is contained in:
Nicolò Boschi 2024-06-22 04:57:51 +02:00 committed by GitHub
commit 076498ebcf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 18 additions and 9 deletions

View file

@ -58,9 +58,10 @@ jobs:
with:
context: .
push: true
platforms: "linux/amd64"
file: ${{ needs.setup.outputs.file }}
tags: ${{ needs.setup.outputs.tags }}
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
build_components:
if: ${{ inputs.release_type == 'main' }}
@ -92,11 +93,12 @@ jobs:
with:
context: .
push: true
platforms: "linux/amd64"
build-args: |
LANGFLOW_IMAGE=langflowai/langflow:${{ inputs.version }}
file: ${{ matrix.dockerfile }}
tags: ${{ matrix.tags }}
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
restart-space:
name: Restart HuggingFace Spaces

View file

@ -74,6 +74,7 @@ jobs:
context: .
push: true
file: ./docker/build_and_push_base.Dockerfile
platforms: "linux/amd64,linux/arm64/v8"
tags: |
langflowai/langflow:base-${{ needs.release.outputs.version }}
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false

View file

@ -80,7 +80,8 @@ jobs:
context: .
push: true
file: ./docker/build_and_push.Dockerfile
platforms: "linux/amd64,linux/arm64/v8"
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
tags: |
langflowai/langflow:${{ needs.release.outputs.version }}
langflowai/langflow:1.0-alpha
@ -90,7 +91,8 @@ jobs:
context: .
push: true
file: ./docker/frontend/build_and_push_frontend.Dockerfile
platforms: "linux/amd64,linux/arm64/v8"
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
tags: |
langflowai/langflow-frontend:${{ needs.release.outputs.version }}
langflowai/langflow-frontend:1.0-alpha
@ -102,7 +104,8 @@ jobs:
context: .
push: true
file: ./docker/build_and_push_backend.Dockerfile
platforms: "linux/amd64,linux/arm64/v8"
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
build-args: |
LANGFLOW_IMAGE=langflowai/langflow:${{ needs.release.outputs.version }}
tags: |

View file

@ -52,7 +52,8 @@ jobs:
context: .
push: true
file: ./docker/build_and_push.Dockerfile
platforms: "linux/amd64,linux/arm64/v8"
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
tags: |
langflowai/langflow:${{ steps.check-version.outputs.version }}
langflowai/langflow:latest
@ -64,7 +65,8 @@ jobs:
context: .
push: true
file: ./docker/build_and_push_backend.Dockerfile
platforms: "linux/amd64,linux/arm64/v8"
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
build-args: |
LANGFLOW_IMAGE=langflowai/langflow:${{ steps.check-version.outputs.version }}
tags: |
@ -76,7 +78,8 @@ jobs:
context: .
push: true
file: ./docker/frontend/build_and_push_frontend.Dockerfile
platforms: "linux/amd64,linux/arm64/v8"
# provenance: false will result in a single manifest for all platforms which makes the image pullable from arm64 machines via the emulation (e.g. Apple Silicon machines)
provenance: false
tags: |
langflowai/langflow-frontend:${{ steps.check-version.outputs.version }}
langflowai/langflow-frontend:latest