Docker Swarm Step Template

Hi,

I’ve tried out Octopus Docker step templates and it looks quite good.
Now I’m looking into Docker Swarm. Do you have any plans to create a Docker Swarm Template?

Regards
B.

Hi there

Thanks for getting in touch!

Docker Compose and Docker Swarm are on our road map, but not something we are looking at at the moment. At this point, we cant commit to when they will be available.

That said, it should be fairly simple to write a step template for it - if you do, it would be an awesome addition to the community step template library!

Regards,
Matt

I’d like a way to deploy my docker-stack.yml file on my Swarm created using ‘Docker for AWS’. I can’t use the .NET Core version of Calamari because ‘Docker for AWS’ uses Moby Linux (based on Alpine Linux) which is not a supported OS by .NET Core. I can install Mono but the EC2 instances can be blown away at any time and replaced by new instances because ‘Docker for AWS’ uses AWS Auto Scaling Groups to increase/decrease the number of nodes in the Docker Swarm and also deal with bad nodes by simply replacing them.

I’ve also thought about running an SSH command from my Octopus server but that’s Windows so I don’t think that would work unless I can somehow leverage Ubuntu on Windows.

I raised this GitHub issue where they suggest creating a Calamari Docker container which can run docker commands.

What are my options? I can see no straightforward route to deploying my docker stack using Octopus Deploy.

Hi Rehan

Docker Swarm is not yet supported out of the box with Octopus - you will have to have a workaround, as suggested in your linked GitHub issue. You could refer to https://hub.docker.com/r/whereisaaron/octopus-kubectl/ as a container that would get you most of the way there.

Octopus only needs Calamari to execute the built in steps - you can use a plain old ssh connection to run any script. That way you wont need .netcore / mono. Are you able to ssh to the manager node and run the docker swarm commands?

Hope that helps.

Regards,
Matt

ps - Its best to raise an new issue rather than adding a new question onto an existing ticket.