diff --git a/pkg/domain/infra/abi/containers_runlabel.go b/pkg/domain/infra/abi/containers_runlabel.go
index 199ae43ad0..d448627dcd 100644
--- a/pkg/domain/infra/abi/containers_runlabel.go
+++ b/pkg/domain/infra/abi/containers_runlabel.go
@@ -180,13 +180,28 @@ func generateRunlabelCommand(runlabel string, img *libimage.Image, inputName str
 }
 
 func replaceName(arg, name string) string {
+	if arg == "NAME" {
+		return name
+	}
+
 	newarg := strings.ReplaceAll(arg, "$NAME", name)
-	return strings.ReplaceAll(newarg, "${NAME}", name)
+	newarg = strings.ReplaceAll(newarg, "${NAME}", name)
+	if strings.HasSuffix(newarg, "=NAME") {
+		newarg = strings.ReplaceAll(newarg, "=NAME", fmt.Sprintf("=%s", name))
+	}
+	return newarg
 }
 
 func replaceImage(arg, image string) string {
+	if arg == "IMAGE" {
+		return image
+	}
 	newarg := strings.ReplaceAll(arg, "$IMAGE", image)
-	return strings.ReplaceAll(newarg, "${IMAGE}", image)
+	newarg = strings.ReplaceAll(newarg, "${IMAGE}", image)
+	if strings.HasSuffix(newarg, "=IMAGE") {
+		newarg = strings.ReplaceAll(newarg, "=IMAGE", fmt.Sprintf("=%s", image))
+	}
+	return newarg
 }
 
 // generateCommand takes a label (string) and converts it to an executable command
diff --git a/pkg/domain/infra/abi/containers_runlabel_test.go b/pkg/domain/infra/abi/containers_runlabel_test.go
new file mode 100644
index 0000000000..10f9ae0040
--- /dev/null
+++ b/pkg/domain/infra/abi/containers_runlabel_test.go
@@ -0,0 +1,40 @@
+package abi
+
+import (
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestReplaceName(t *testing.T) {
+	tests := [][]string{
+		{"NAME=$NAME", "test1", "NAME=test1"},
+		{"NAME=${NAME}", "test2", "NAME=test2"},
+		{"NAME=NAME", "test3", "NAME=test3"},
+		{"NAME=NAMEFOO", "test3", "NAME=NAMEFOO"},
+		{"NAME", "test4", "test4"},
+		{"FNAME", "test5", "FNAME"},
+		{"NAME=foo", "test6", "NAME=foo"},
+		{"This is my NAME", "test7", "This is my NAME"},
+	}
+	for _, args := range tests {
+		val := replaceName(args[0], args[1])
+		assert.Equal(t, val, args[2])
+	}
+}
+
+func TestReplaceImage(t *testing.T) {
+	tests := [][]string{
+		{"IMAGE=$IMAGE", "test1", "IMAGE=test1"},
+		{"IMAGE=${IMAGE}", "test2", "IMAGE=test2"},
+		{"IMAGE=IMAGE", "test3", "IMAGE=test3"},
+		{"IMAGE=IMAGEFOO", "test3", "IMAGE=IMAGEFOO"},
+		{"IMAGE", "test4", "test4"},
+		{"FIMAGE", "test5", "FIMAGE"},
+		{"IMAGE=foo", "test6", "IMAGE=foo"},
+	}
+	for _, args := range tests {
+		val := replaceImage(args[0], args[1])
+		assert.Equal(t, val, args[2])
+	}
+}