diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 5313d60a..4e7feb7f 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -1,12 +1,17 @@
-name: Release 3X-UI for Docker
+name: Build and Release 3X-UI for Docker
+
 on:
   workflow_dispatch:
+  release:
+    types: [published]
   push:
-    tags:
-      - "v*.*.*"
+  pull_request:
+    types: [opened, synchronize, reopened]
 
 jobs:
   build:
+    permissions:
+      contents: write
     runs-on: ubuntu-22.04
 
     steps:
@@ -54,4 +59,4 @@ jobs:
         push: true
         platforms: linux/amd64, linux/arm64/v8, linux/arm/v7, linux/arm/v6, linux/386
         tags: ${{ steps.meta.outputs.tags }}
-        labels: ${{ steps.meta.outputs.labels }}
\ No newline at end of file
+        labels: ${{ steps.meta.outputs.labels }}