I'm trying to get Packer to build a Docker image, then run a container from 
that image and execute a few tests against the running container _before_ 
pushing the image back to a Docker registry.  I want to _only_ push the 
image if tests pass.  Otherwise, I want the build to fail and _not_ push 
anything.  

I've tried putting a "shell-local" post-processing step in between the 
"docker-tag" and the "docker-push" post-processing steps (pasted below).  
The tests run as expected, but then the build fails on "docker-push" with 
"Can only import from docker-import and docker-tag artifacts".  This makes 
sense I guess - I lose the Docker artifact once I run the shell-local step 
so it doesn't know what I'm asking it to push.  I've explored "manifest" 
and "artifice" post-processors among other things but I haven't yet figured 
out how to make it work the way I want.

Is what I'm trying to do possible with Packer?

Thanks!

...
    "builders": [
        {
            "type": "docker",
            "image": "{{user `base_image_repository`}}:latest",
            "commit": true,
            "ecr_login": true,
            "login_server": "{{user `ecr_login_server`}}",
            "changes": [
                "CMD /opt/app/run.sh"
              ]
        }
    ],
    "provisioners": [
    ...
    ],
    "post-processors": [
        [
            {
                "type": "docker-tag",
                "repository": "{{user `docker_repository`}}",
                "tag": "{{user `version`}}"
            },
            {
                "type": "shell-local",
                "script": "./test-container.sh",
                "environment_vars": ["IMAGE_AND_TAG={{user 
`docker_repository`}}:{{user `version`}}", "LEVEL={{user `level`}}"]
            },
            {
                "type": "docker-push",
                "ecr_login": true,
                "login_server": "{{user `ecr_login_server`}}"
            }
        ]
    ]
}

-- 
This mailing list is governed under the HashiCorp Community Guidelines - 
https://www.hashicorp.com/community-guidelines.html. Behavior in violation of 
those guidelines may result in your removal from this mailing list.

GitHub Issues: https://github.com/mitchellh/packer/issues
IRC: #packer-tool on Freenode
--- 
You received this message because you are subscribed to the Google Groups 
"Packer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/packer-tool/08bec5d1-4c5e-4161-b0b6-cca6de9ae533%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to