diff --git a/lib/datasource/docker/index.ts b/lib/datasource/docker/index.ts
index bd6906f5489daa7935a4914d5bc6f6830f5a4567..375c4755825577bfef93618ad59a23828985867d 100644
--- a/lib/datasource/docker/index.ts
+++ b/lib/datasource/docker/index.ts
@@ -43,8 +43,6 @@ export const defaultConfig = {
   group: {
     commitMessageTopic: '{{{groupName}}} Docker tags',
   },
-  autoReplaceStringTemplate:
-    '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}',
 };
 
 const http = new Http(id);
diff --git a/lib/manager/ansible/__snapshots__/extract.spec.ts.snap b/lib/manager/ansible/__snapshots__/extract.spec.ts.snap
index 9de39fc4c968c62a696de4291c76ecb14d349c37..f45528ee2eb59af6c4fe9222fea7181ca808d0dd 100644
--- a/lib/manager/ansible/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/ansible/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/ansible/extract extractPackageFile() extracts multiple image lines from docker_container 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -11,6 +12,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -19,6 +21,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -27,6 +30,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "14.04",
     "datasource": "docker",
@@ -35,6 +39,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -43,6 +48,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -51,6 +57,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "latest",
     "datasource": "docker",
@@ -59,6 +66,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "14.04",
     "datasource": "docker",
@@ -67,6 +75,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "14.04",
     "datasource": "docker",
@@ -80,6 +89,7 @@ Array [
 exports[`lib/manager/ansible/extract extractPackageFile() extracts multiple image lines from docker_service 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "11.5.1",
     "datasource": "docker",
@@ -88,6 +98,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "10",
     "datasource": "docker",
@@ -96,6 +107,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "4.0.9-1",
     "datasource": "docker",
@@ -104,6 +116,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "2.6.2",
     "datasource": "docker",
diff --git a/lib/manager/circleci/__snapshots__/extract.spec.ts.snap b/lib/manager/circleci/__snapshots__/extract.spec.ts.snap
index c1658309131572c3950456d5f2cdf9dd11d7890c..dafe4d26755315b8f14d63704c27ce34d5a8ca87 100644
--- a/lib/manager/circleci/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/circleci/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/circleci/extract extractPackageFile() extracts multiple image lines 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": undefined,
@@ -13,6 +14,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "4",
@@ -23,6 +25,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "6",
@@ -33,6 +36,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8.9.0",
@@ -78,6 +82,7 @@ Array [
     "versioning": "npm",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": "sha256:3870d35b962a943df72d948580fc66ceaaee1c4fbd205930f32e0f0760eb1077",
     "currentValue": "3.7",
     "datasource": "docker",
@@ -87,6 +92,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": "sha256:3870d35b962a943df72d948580fc66ceaaee1c4fbd205930f32e0f0760eb1077",
     "currentValue": "3.7",
     "datasource": "docker",
@@ -96,6 +102,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": "sha256:3870d35b962a943df72d948580fc66ceaaee1c4fbd205930f32e0f0760eb1077",
     "currentValue": "3.7",
     "datasource": "docker",
@@ -105,6 +112,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": "sha256:3870d35b962a943df72d948580fc66ceaaee1c4fbd205930f32e0f0760eb1077",
     "currentValue": "3.7",
     "datasource": "docker",
@@ -114,6 +122,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": "sha256:eb6325b75c1c70b4992eaa1bdd29e24e5f14d5324b4714a49f3e67783473214b",
     "currentValue": "3-6",
     "datasource": "docker",
@@ -123,6 +132,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": "sha256:3870d35b962a943df72d948580fc66ceaaee1c4fbd205930f32e0f0760eb1077",
     "currentValue": "3.7",
     "datasource": "docker",
diff --git a/lib/manager/common.ts b/lib/manager/common.ts
index 5ee460efdffb38c7078e531d3da39a38373683b8..cca81abdb88e8a429acf0eff642c95aa4e63b44e 100644
--- a/lib/manager/common.ts
+++ b/lib/manager/common.ts
@@ -169,6 +169,7 @@ export interface PackageDependency<T = Record<string, any>> extends Package<T> {
   updates?: LookupUpdate[];
   versionLine?: number;
   replaceString?: string;
+  autoReplaceStringTemplate?: string;
   depIndex?: number;
 }
 
diff --git a/lib/manager/docker-compose/__snapshots__/extract.spec.ts.snap b/lib/manager/docker-compose/__snapshots__/extract.spec.ts.snap
index dcac42c3917bfe0c3043389f9f8e70eca1231762..f310aa03483d8b0836ea18a88ca1418afe018a54 100644
--- a/lib/manager/docker-compose/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/docker-compose/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/docker-compose/extract extractPackageFile() extracts multiple image lines 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "alpine",
     "datasource": "docker",
@@ -10,6 +11,7 @@ Array [
     "replaceString": "quay.io/something/redis:alpine",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "10.0.0",
@@ -18,6 +20,7 @@ Array [
     "replaceString": "node:10.0.0",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "9.4.0",
     "datasource": "docker",
@@ -25,6 +28,7 @@ Array [
     "replaceString": "postgres:9.4.0",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "before",
     "datasource": "docker",
@@ -32,6 +36,7 @@ Array [
     "replaceString": "dockersamples/examplevotingapp_vote:before",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "before",
     "datasource": "docker",
@@ -39,6 +44,7 @@ Array [
     "replaceString": "dockersamples/examplevotingapp_result:before",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -46,6 +52,7 @@ Array [
     "replaceString": "dockersamples/examplevotingapp_worker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "stable",
     "datasource": "docker",
@@ -53,6 +60,7 @@ Array [
     "replaceString": "dockersamples/visualizer:stable",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "datasource": "docker",
     "replaceString": "\${IMAGE:-synkodevelopers/edplugins}:\${TAG:-latest}",
     "skipReason": "contains-variable",
diff --git a/lib/manager/dockerfile/__snapshots__/extract.spec.ts.snap b/lib/manager/dockerfile/__snapshots__/extract.spec.ts.snap
index 4f366f261add16969f60dc206e11c40bebfd03e4..5f9d89ffb129410dbb177695457b6672fe1094ef 100644
--- a/lib/manager/dockerfile/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/dockerfile/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/dockerfile/extract extractPackageFile() detects ["stage"] and ["final"] deps of docker multi-stage build. 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8.15.1-alpine",
@@ -12,6 +13,7 @@ Array [
     "replaceString": "node:8.15.1-alpine",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "1.7.3",
     "datasource": "docker",
@@ -20,6 +22,7 @@ Array [
     "replaceString": "golang:1.7.3",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "latest",
     "datasource": "docker",
@@ -33,6 +36,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() extracts images on adjacent lines 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": "sha256:d743b4141b02fcfb8beb68f92b4cd164f60ee457bf2d053f36785bf86de16b0d",
     "currentValue": "8.11.3-alpine",
@@ -42,6 +46,7 @@ Array [
     "replaceString": "node:8.11.3-alpine@sha256:d743b4141b02fcfb8beb68f92b4cd164f60ee457bf2d053f36785bf86de16b0d",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "1.1.1",
     "datasource": "docker",
@@ -55,6 +60,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() extracts multiple FROM tags 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "6.12.3",
@@ -64,6 +70,7 @@ Array [
     "replaceString": "node:6.12.3",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "3.6-slim",
     "datasource": "docker",
@@ -77,6 +84,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles COPY --from 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "v0.11.0",
     "datasource": "docker",
@@ -90,6 +98,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles abnoral spacing 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8.7.0",
@@ -104,6 +113,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles calico/node 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -117,6 +127,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles comments 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": undefined,
@@ -131,6 +142,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles custom hosts 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8",
@@ -145,6 +157,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles custom hosts and suffix 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8-alpine",
@@ -159,6 +172,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles custom hosts with namespace 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8",
@@ -173,6 +187,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles custom hosts with port 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8",
@@ -187,6 +202,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles custom hosts with port without tag 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": undefined,
@@ -201,6 +217,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles digest 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": "sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063",
     "currentValue": undefined,
@@ -215,6 +232,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles from as 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8.9.0-alpine",
@@ -229,6 +247,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles naked dep 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": undefined,
@@ -243,6 +262,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles namespaced images 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8",
@@ -257,6 +277,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles tag 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "8.9.0-alpine",
@@ -271,6 +292,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() handles tag and digest 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": "sha256:eb85fc5b1198f5e1ec025ea07586bdbbf397e7d82df66c90d7511f533517e063",
     "currentValue": "8.9.0",
@@ -285,6 +307,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() is case insensitive 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": undefined,
@@ -299,6 +322,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() skips index reference COPY --from tags 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "6.12.3",
@@ -313,6 +337,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() skips named multistage COPY --from tags 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "6.12.3",
@@ -327,6 +352,7 @@ Array [
 exports[`lib/manager/dockerfile/extract extractPackageFile() skips named multistage FROM tags 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": undefined,
     "currentValue": "6.12.3",
diff --git a/lib/manager/dockerfile/extract.ts b/lib/manager/dockerfile/extract.ts
index bff186674358c9c2f15020a7cc7c697a32cc0790..cca489a140e8d736c5c0330ba8f7607c47b5558d 100644
--- a/lib/manager/dockerfile/extract.ts
+++ b/lib/manager/dockerfile/extract.ts
@@ -30,9 +30,16 @@ export function splitImageParts(currentFrom: string): PackageDependency {
   return dep;
 }
 
-export function getDep(currentFrom: string): PackageDependency {
+export function getDep(
+  currentFrom: string,
+  specifyReplaceString = true
+): PackageDependency {
   const dep = splitImageParts(currentFrom);
-  dep.replaceString = currentFrom;
+  if (specifyReplaceString) {
+    dep.replaceString = currentFrom;
+    dep.autoReplaceStringTemplate =
+      '{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}';
+  }
   dep.datasource = datasourceDocker.id;
   if (
     dep.depName &&
diff --git a/lib/manager/droneci/__snapshots__/extract.spec.ts.snap b/lib/manager/droneci/__snapshots__/extract.spec.ts.snap
index a623bc510585708dfa988045e2e0c1b70e670181..70f5e3d8fd4d413853daec6ca4ff17bf12647d9b 100644
--- a/lib/manager/droneci/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/droneci/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/droneci/extract extractPackageFile() extracts multiple image lines 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "1.8.1-alpine",
     "datasource": "docker",
@@ -11,6 +12,7 @@ Array [
     "replaceString": "elixir:1.8.1-alpine",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": "sha256:36adc17e9cceab32179d3314da9cb9c737ffb11f0de4e688f407ad6d9ca32201",
     "currentValue": "10.0.0",
@@ -20,6 +22,7 @@ Array [
     "replaceString": "amd64/node:10.0.0@sha256:36adc17e9cceab32179d3314da9cb9c737ffb11f0de4e688f407ad6d9ca32201",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "5.7.24",
     "datasource": "docker",
@@ -28,6 +31,7 @@ Array [
     "replaceString": "mysql:5.7.24",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "alpine",
     "datasource": "docker",
diff --git a/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap b/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap
index 26f8db34d7b1a78def268e529a90cf3fa132ff7a..f0d680de176315106d948edb520d0910e4859db4 100644
--- a/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/github-actions/extract extractPackageFile() extracts multiple image lines from docker_container 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -11,6 +12,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": "sha256:7b65413af120ec5328077775022c78101f103258a1876ec2f83890bce416e896",
     "currentValue": "6",
@@ -25,6 +27,7 @@ Array [
 exports[`lib/manager/github-actions/extract extractPackageFile() extracts multiple image lines from yaml configuration file 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": undefined,
     "datasource": "docker",
@@ -33,6 +36,7 @@ Array [
     "versioning": "docker",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "commitMessageTopic": "Node.js",
     "currentDigest": "sha256:7b65413af120ec5328077775022c78101f103258a1876ec2f83890bce416e896",
     "currentValue": "6",
diff --git a/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap b/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap
index 2cdb5646846d0f06fea8be5238d40cde0bd6e1f9..1587d27e655cf04895b0ca51fc74d904ea7f0c5d 100644
--- a/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/gitlabci/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/gitlabci/extract extractPackageFile() extracts multiple image lines 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "latest",
     "datasource": "docker",
@@ -11,6 +12,7 @@ Array [
     "replaceString": "hadolint/hadolint:latest",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "latest",
     "datasource": "docker",
@@ -19,6 +21,7 @@ Array [
     "replaceString": "docker:latest",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "dind",
     "datasource": "docker",
@@ -27,6 +30,7 @@ Array [
     "replaceString": "docker:dind",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "latest",
     "datasource": "docker",
@@ -35,6 +39,7 @@ Array [
     "replaceString": "docker:latest",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "dind",
     "datasource": "docker",
@@ -43,6 +48,7 @@ Array [
     "replaceString": "docker:dind",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "1.15",
     "datasource": "docker",
@@ -56,6 +62,7 @@ Array [
 exports[`lib/manager/gitlabci/extract extractPackageFile() extracts multiple image lines with comments 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "19.70.8-slim",
     "datasource": "docker",
@@ -64,6 +71,7 @@ Array [
     "replaceString": "renovate/renovate:19.70.8-slim",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "10.4.11",
     "datasource": "docker",
@@ -72,6 +80,7 @@ Array [
     "replaceString": "mariadb:10.4.11",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "1.0.0",
     "datasource": "docker",
diff --git a/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap b/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap
index 6f844977577f96583bceb4c951a4d633cad50945..639a6cd8a38bfad7663a019c99b9558697d1c0c0 100644
--- a/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/helm-values/__snapshots__/extract.spec.ts.snap
@@ -8,21 +8,18 @@ Object {
       "currentValue": "11.6.0-debian-9-r0",
       "datasource": "docker",
       "depName": "bitnami/postgresql",
-      "replaceString": "bitnami/postgresql:11.6.0-debian-9-r0",
     },
     Object {
       "currentDigest": undefined,
       "currentValue": "0.7.0-debian-9-r12",
       "datasource": "docker",
       "depName": "docker.io/bitnami/postgres-exporter",
-      "replaceString": "docker.io/bitnami/postgres-exporter:0.7.0-debian-9-r12",
     },
     Object {
       "currentDigest": undefined,
       "currentValue": "11.5.0-debian-9-r0",
       "datasource": "docker",
       "depName": "docker.io/bitnami/postgresql",
-      "replaceString": "docker.io/bitnami/postgresql:11.5.0-debian-9-r0",
     },
   ],
 }
@@ -36,7 +33,6 @@ Object {
       "currentValue": "1.16.1",
       "datasource": "docker",
       "depName": "nginx",
-      "replaceString": "nginx:1.16.1",
     },
   ],
 }
diff --git a/lib/manager/helm-values/extract.ts b/lib/manager/helm-values/extract.ts
index 21c67b7aaafdb498fe026197593a98c7bdb2d5d5..f0aa4a61f8a51bb53e601d4f015f443428a43d86 100644
--- a/lib/manager/helm-values/extract.ts
+++ b/lib/manager/helm-values/extract.ts
@@ -27,7 +27,7 @@ function findDependencies(
 
       const registry = currentItem.registry ? `${currentItem.registry}/` : '';
       packageDependencies.push(
-        getDep(`${registry}${currentItem.repository}:${currentItem.tag}`)
+        getDep(`${registry}${currentItem.repository}:${currentItem.tag}`, false)
       );
     } else {
       findDependencies(parsedContent[key], packageDependencies);
diff --git a/lib/manager/kubernetes/__snapshots__/extract.spec.ts.snap b/lib/manager/kubernetes/__snapshots__/extract.spec.ts.snap
index fdd4afa86c3818c01d8d30a0743e03d60492e61e..5be801ebb53cf11c133abd980264f323f0e2d239 100644
--- a/lib/manager/kubernetes/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/kubernetes/__snapshots__/extract.spec.ts.snap
@@ -3,6 +3,7 @@
 exports[`lib/manager/kubernetes/extract extractPackageFile() extracts image line in a YAML array 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "v2.1.0",
     "datasource": "docker",
@@ -15,6 +16,7 @@ Array [
 exports[`lib/manager/kubernetes/extract extractPackageFile() extracts multiple image lines 1`] = `
 Array [
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "1.7.9",
     "datasource": "docker",
@@ -22,6 +24,7 @@ Array [
     "replaceString": "nginx:1.7.9",
   },
   Object {
+    "autoReplaceStringTemplate": "{{depName}}{{#if newValue}}:{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}",
     "currentDigest": undefined,
     "currentValue": "v1.11.1",
     "datasource": "docker",