From 028451bf22f935a0af09fdc4f3935619d34dbf9e Mon Sep 17 00:00:00 2001
From: telackey <telackey@noreply.gitea.io>
Date: Wed, 29 Mar 2023 09:42:53 +0800
Subject: [PATCH] Add CLI flag for specifying the Docker image to use. (#83)

Since the `exec` command does not use labels from `.runner`, there is no existing way to specify which Docker image to use for task execution.

This adds an `--image` flag for specifying it manually.  The default remains `node:16-bullseye`.

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/83
Reviewed-by: Jason Song <i@wolfogre.com>
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: telackey <telackey@noreply.gitea.io>
Co-committed-by: telackey <telackey@noreply.gitea.io>
---
 cmd/exec.go | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/cmd/exec.go b/cmd/exec.go
index cd6b3fc..e058dfc 100644
--- a/cmd/exec.go
+++ b/cmd/exec.go
@@ -54,6 +54,7 @@ type executeArgs struct {
 	noSkipCheckout        bool
 	debug                 bool
 	dryrun                bool
+	image                 string
 	cacheHandler          *artifactcache.Handler
 }
 
@@ -385,7 +386,7 @@ func runExec(ctx context.Context, execArgs *executeArgs) func(cmd *cobra.Command
 			ContainerNetworkMode:  "bridge",
 			DefaultActionInstance: execArgs.defaultActionsUrl,
 			PlatformPicker: func(_ []string) string {
-				return "node:16-bullseye"
+				return execArgs.image
 			},
 		}
 
@@ -461,6 +462,7 @@ func loadExecCmd(ctx context.Context) *cobra.Command {
 	execCmd.PersistentFlags().BoolVarP(&execArg.noSkipCheckout, "no-skip-checkout", "", false, "Do not skip actions/checkout")
 	execCmd.PersistentFlags().BoolVarP(&execArg.debug, "debug", "d", false, "enable debug log")
 	execCmd.PersistentFlags().BoolVarP(&execArg.dryrun, "dryrun", "n", false, "dryrun mode")
+	execCmd.PersistentFlags().StringVarP(&execArg.image, "image", "i", "node:16-bullseye", "docker image to use")
 
 	return execCmd
 }