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.