Each docker image we upload is tagged with the Travis build number that uploaded them
During the integration test we download the images from Docker Hub instead of building them one more time (this was implemented to overcome a limitation of Travis: build stages do not share storage)
Note that we use the same docker-compose.yml for local development and Travis builds but we change the latest tag of each image to the Travis build number when building in the Travis environment (see test/test-docker-images.sh script).
Benefits
Push images on Docker Hub
Avoid rebuilding the images in the integration test phase
Containers wait for dependencies to start before running (by opening a connection with netcat)
Test script waits for containers to start before running InSpec tests (by inspecting each container log and searching for relevant lines)
Build finally fixed! 🎉
Possible Drawbacks
This PR does not take care of tagging docker images that may be suitable for a release. Docker Hub is used only as a "bridge" between Travis build stages.
Description of the Change
This PR implements the following features:
Note that we use the same
docker-compose.yml
for local development and Travis builds but we change thelatest
tag of each image to the Travis build number when building in the Travis environment (seetest/test-docker-images.sh
script).Benefits
Possible Drawbacks
This PR does not take care of tagging docker images that may be suitable for a release. Docker Hub is used only as a "bridge" between Travis build stages.
Applicable Issues
N/A