I am walking through a solution to do CD with Octopus, but our deployment environment is a little complex.
Currently use Bamboo to do CI and generate zip, war etc. Tester download these package and generate Docker image and deploy them into Hyper-V virtual machine(Ubuntu).
please give us some suggestions how to deploy Docker and Hyper-V with Octopus and Bamboo? thanks
Hi David, thanks for reaching out.
Our recommendation is that Docker images be built by your build tool (Bamboo in this case) and pushed to a shared repository that can be accessed by Octopus. Octopus can then treat this shared repository as an external feed. https://octopus.com/docs/deploying-applications/docker-containers#DockerContainers-HowDockercontainersmaptoOctopusconcepts has more information around how Docker repositories map conceptually to external feeds in Octopus.
Once the image is in a repository, Octopus can then be used to deploy it to a target machine. Given that you are running Ubuntu, this would be a SSH target. https://octopus.com/docs/infrastructure/ssh-targets has documentation on how SSH targets can be configured in Octopus.
You can integrate Bamboo and Octopus using the Bamboo plugin, which is documented at https://octopus.com/docs/api-and-integration/bamboo.
So at a high level the process would look like this:
- Build the artifacts (ZIP, WAR etc) in Bamboo
- Build and publish the Docker image in Bamboo
- Trigger a deployment in Octopus from Bamboo using the plugin.
- Octopus consumes the Docker image from the shared repository and deploys it to the targets.
Thanks for your suggestion, it is very helpful for us.