Deploy to docker swarm

Getting Started

Download Docker. If you are on Mac or Windows, Docker Compose will be automatically installed. On Linux, make sure you have the latest version of Compose.

Run in this directory:

docker-compose up

The app will be running at http://localhost:5000, and the results will be at http://localhost:5001.

Alternately, if you want to run it on a Docker Swarm, first make sure you have a swarm. If you don’t, run:

docker swarm init

Once you have your swarm, in this directory run:

docker stack deploy --compose-file docker-stack.yml vote
Try this example

Just head over to the example repository in Github.

Deploy to Remote Swarm

YAML

deploy_to_swarm:
    image: codefresh/remote-docker
    working_directory: ${{main_clone}}
    commands:
      - rdocker ${{RDOCKER_HOST}} docker stack deploy --compose-file docker-stack.yml ${{STACK_NAME}}
    environment:
      - SSH_KEY=${{SSH_KEY}}
    when:
      branch:
        only:
          - master
RDOCKER_HOST remote Docker swarm master machine, accessible over SSH (for example, ubuntu@ec2-public-ip)
STACK_NAME is new Docker stack name (use “vote”, for example)
SSH_KEY private SSH key, used to access Docker swarm master machine
SPLIT_CHAR split character, you’ve used to replace newline in SSH key. Recommendation: use , (comma character).
Passing SSH key through ENV variable

Currently in order to pass SSH key through Codefresh UI, you need to convert it to single line string (replacing newline with comma), like this:

SSH_KEY=$(cat ~/.ssh/my_ssh_key_file | tr '\n' ',') 

codefresh_env_vars.png

codefresh_builds_result.png