chore: building images using Docker bake

This commit is contained in:
ttionya
2024-11-17 16:04:05 +08:00
parent c3c90611a6
commit f462759bdf
5 changed files with 124 additions and 48 deletions
+1
View File
@@ -0,0 +1 @@
/*.hcl linguist-detectable=false
+57 -34
View File
@@ -24,7 +24,7 @@ jobs:
uses: actions/checkout@v4
-
name: Prepare
run: echo "TAG=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
@@ -45,20 +45,26 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v6
name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
context: '.'
file: './Dockerfile'
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7'
labels: |
org.opencontainers.image.title=vaultwarden-backup
org.opencontainers.image.description=Backup vaultwarden SQLite3/PostgreSQL/MySQL/MariaDB database by rclone
org.opencontainers.image.authors=ttionya
org.opencontainers.image.version=${{ env.VERSION }}
-
name: Build and push
uses: docker/bake-action@v5
env:
VERSION: ${{ env.VERSION }}
with:
files: |
./docker-bake.hcl
${{ steps.meta.outputs.bake-file-labels }}
targets: image-stable
push: true
tags: |
ttionya/vaultwarden-backup:latest
ttionya/vaultwarden-backup:${{ env.TAG }}
ttionya/bitwardenrs-backup:latest
ttionya/bitwardenrs-backup:${{ env.TAG }}
ghcr.io/ttionya/vaultwarden-backup:latest
ghcr.io/ttionya/vaultwarden-backup:${{ env.TAG }}
publish-beta:
name: Docker Publish Beta
@@ -73,7 +79,7 @@ jobs:
uses: actions/checkout@v4
-
name: Prepare
run: echo "TAG=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
@@ -87,15 +93,26 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v6
name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
context: '.'
file: './Dockerfile'
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7'
labels: |
org.opencontainers.image.title=vaultwarden-backup
org.opencontainers.image.description=Backup vaultwarden SQLite3/PostgreSQL/MySQL/MariaDB database by rclone
org.opencontainers.image.authors=ttionya
org.opencontainers.image.version=${{ env.VERSION }}
-
name: Build and push
uses: docker/bake-action@v5
env:
VERSION: ${{ env.VERSION }}
with:
files: |
./docker-bake.hcl
${{ steps.meta.outputs.bake-file-labels }}
targets: image-beta
push: true
tags: |
ttionya/vaultwarden-backup:${{ env.TAG }}
publish-schedule:
name: Docker Publish Schedule
@@ -121,7 +138,7 @@ jobs:
name: Prepare
run: |
TAG=${{ steps.tag.outputs.release }}
echo "TAG=${TAG#v}" >> $GITHUB_ENV
echo "VERSION=${TAG#v}" >> $GITHUB_ENV
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
@@ -142,17 +159,23 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v6
name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
context: '.'
file: './Dockerfile'
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7'
labels: |
org.opencontainers.image.title=vaultwarden-backup
org.opencontainers.image.description=Backup vaultwarden SQLite3/PostgreSQL/MySQL/MariaDB database by rclone
org.opencontainers.image.authors=ttionya
org.opencontainers.image.version=${{ env.VERSION }}
-
name: Build and push
uses: docker/bake-action@v5
env:
VERSION: ${{ env.VERSION }}
with:
files: |
./docker-bake.hcl
${{ steps.meta.outputs.bake-file-labels }}
targets: image-schedule
push: true
tags: |
ttionya/vaultwarden-backup:latest
ttionya/vaultwarden-backup:${{ env.TAG }}
ttionya/bitwardenrs-backup:latest
ttionya/bitwardenrs-backup:${{ env.TAG }}
ghcr.io/ttionya/vaultwarden-backup:latest
ghcr.io/ttionya/vaultwarden-backup:${{ env.TAG }}
+6 -10
View File
@@ -37,22 +37,18 @@ jobs:
driver-opts: network=host
-
name: Build base image
uses: docker/build-push-action@v6
uses: docker/bake-action@v5
with:
context: '.'
file: './Dockerfile'
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7'
files: ./docker-bake.hcl
targets: image-test-base
push: true
tags: localhost:5000/base:dev
-
name: Build test image
uses: docker/build-push-action@v6
uses: docker/bake-action@v5
with:
context: '.'
file: './tests/Dockerfile'
build-contexts: base=docker-image://localhost:5000/base:dev
files: ./docker-bake.hcl
targets: image-test
load: true
tags: ttionya/vaultwarden-backup:test
-
name: Test
run: |
+2 -4
View File
@@ -1,8 +1,6 @@
FROM rclone/rclone:1.68.2
# syntax=docker/dockerfile:1
LABEL "repository"="https://github.com/ttionya/vaultwarden-backup" \
"homepage"="https://github.com/ttionya/vaultwarden-backup" \
"maintainer"="ttionya <git@ttionya.com>"
FROM rclone/rclone:1.68.2
ARG USER_NAME="backuptool"
ARG USER_ID="1100"
+58
View File
@@ -0,0 +1,58 @@
variable "VERSION" {
default = "latest"
}
target "docker-metadata-action" {}
target "_common" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "Dockerfile"
platforms = [
"linux/amd64",
"linux/arm64",
"linux/arm/v6",
"linux/arm/v7"
]
tags = [
"ttionya/vaultwarden-backup:latest",
"ttionya/vaultwarden-backup:${VERSION}",
"ttionya/bitwardenrs-backup:latest",
"ttionya/bitwardenrs-backup:${VERSION}",
"ghcr.io/ttionya/vaultwarden-backup:latest",
"ghcr.io/ttionya/vaultwarden-backup:${VERSION}"
]
}
target "image-stable" {
inherits = ["_common"]
}
target "image-schedule" {
inherits = ["image-stable"]
}
target "image-beta" {
inherits = ["_common"]
tags = [
"ttionya/vaultwarden-backup:${VERSION}"
]
}
target "image-test-base" {
inherits = ["_common"]
tags = [
"localhost:5000/base:dev"
]
}
target "image-test" {
inherits = ["_common"]
dockerfile = "./tests/Dockerfile"
contexts = {
base = "docker-image://localhost:5000/base:dev"
}
tags = [
"ttionya/vaultwarden-backup:test"
]
}