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 uses: actions/checkout@v4
- -
name: Prepare name: Prepare
run: echo "TAG=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
- -
name: Set up QEMU name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
@@ -45,20 +45,26 @@ jobs:
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- -
name: Build and push name: Docker meta
uses: docker/build-push-action@v6 id: meta
uses: docker/metadata-action@v5
with: with:
context: '.' labels: |
file: './Dockerfile' org.opencontainers.image.title=vaultwarden-backup
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7' 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 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: publish-beta:
name: Docker Publish Beta name: Docker Publish Beta
@@ -73,7 +79,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- -
name: Prepare name: Prepare
run: echo "TAG=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
- -
name: Set up QEMU name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
@@ -87,15 +93,26 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}
- -
name: Build and push name: Docker meta
uses: docker/build-push-action@v6 id: meta
uses: docker/metadata-action@v5
with: with:
context: '.' labels: |
file: './Dockerfile' org.opencontainers.image.title=vaultwarden-backup
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7' 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 push: true
tags: |
ttionya/vaultwarden-backup:${{ env.TAG }}
publish-schedule: publish-schedule:
name: Docker Publish Schedule name: Docker Publish Schedule
@@ -121,7 +138,7 @@ jobs:
name: Prepare name: Prepare
run: | run: |
TAG=${{ steps.tag.outputs.release }} TAG=${{ steps.tag.outputs.release }}
echo "TAG=${TAG#v}" >> $GITHUB_ENV echo "VERSION=${TAG#v}" >> $GITHUB_ENV
- -
name: Set up QEMU name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
@@ -142,17 +159,23 @@ jobs:
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- -
name: Build and push name: Docker meta
uses: docker/build-push-action@v6 id: meta
uses: docker/metadata-action@v5
with: with:
context: '.' labels: |
file: './Dockerfile' org.opencontainers.image.title=vaultwarden-backup
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7' 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 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 driver-opts: network=host
- -
name: Build base image name: Build base image
uses: docker/build-push-action@v6 uses: docker/bake-action@v5
with: with:
context: '.' files: ./docker-bake.hcl
file: './Dockerfile' targets: image-test-base
platforms: 'linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7'
push: true push: true
tags: localhost:5000/base:dev
- -
name: Build test image name: Build test image
uses: docker/build-push-action@v6 uses: docker/bake-action@v5
with: with:
context: '.' files: ./docker-bake.hcl
file: './tests/Dockerfile' targets: image-test
build-contexts: base=docker-image://localhost:5000/base:dev
load: true load: true
tags: ttionya/vaultwarden-backup:test
- -
name: Test name: Test
run: | 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" \ FROM rclone/rclone:1.68.2
"homepage"="https://github.com/ttionya/vaultwarden-backup" \
"maintainer"="ttionya <git@ttionya.com>"
ARG USER_NAME="backuptool" ARG USER_NAME="backuptool"
ARG USER_ID="1100" 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"
]
}