Skip to content

Commit 6ab394e

Browse files
authored
fix digest storage (#80)
1 parent aec29a1 commit 6ab394e

File tree

3 files changed

+7
-14
lines changed

3 files changed

+7
-14
lines changed

builder/docker/artifact_import.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func (a *ImportArtifact) stateHCPPackerRegistryMetadata() interface{} {
109109
img.Labels["PackerArtifactID"] = a.Id()
110110
// Digest exists in state if we ran the packer push postprocessor.
111111
digest, ok := data["Digest"].(string)
112-
if ok {
112+
if ok && digest != "" {
113113
img.Labels["ImageDigest"] = digest
114114
}
115115

post-processor/docker-push/post-processor.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,18 +139,19 @@ func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifa
139139
// continue.
140140
data := artifact.State("generated_data")
141141

142+
newGenData := map[string]interface{}{}
142143
castData, ok := data.(map[interface{}]interface{})
143144
if ok {
144-
castData["Digest"] = digest
145-
// The RPC turns our original map[string]interface{} into a
146-
// map[interface]interface so we need to turn it back
147-
newGenData := map[string]interface{}{}
148145
for k, v := range castData {
149146
newGenData[k.(string)] = v
150147
}
151-
stateData["generated_data"] = newGenData
152148
}
153149

150+
newGenData["Digest"] = digest
151+
// The RPC turns our original map[string]interface{} into a
152+
// map[interface]interface so we need to turn it back
153+
stateData["generated_data"] = newGenData
154+
154155
artifact = &docker.ImportArtifact{
155156
BuilderIdValue: BuilderIdImport,
156157
Driver: driver,

post-processor/docker-tag/post-processor.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,6 @@ func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifa
108108
}
109109
}
110110

111-
// Store digest in state's generated data.
112-
digest, err := driver.Digest(artifact.Id())
113-
if err != nil {
114-
err := fmt.Errorf("Error determining pushed Docker image digest")
115-
ui.Error(err.Error())
116-
}
117-
118111
// If artifact is a docker input artifact, re-store the state data.
119112
// Otherwise, write what we want to the state data.
120113
stateData := map[string]interface{}{"docker_tags": RepoTags}
@@ -125,7 +118,6 @@ func (p *PostProcessor) PostProcess(ctx context.Context, ui packersdk.Ui, artifa
125118

126119
castData, ok := data.(map[interface{}]interface{})
127120
if ok {
128-
castData["Digest"] = digest
129121
// The RPC turns our original map[string]interface{} into a
130122
// map[interface]interface so we need to turn it back
131123
newGenData := map[string]interface{}{}

0 commit comments

Comments
 (0)