CODEFRESH.IO DOCUMENTATION

Codefresh is a Docker-native CI/CD platform.

Instantly build , test and deploy Docker images.

Search results for "{{ search.query }}"

No results found for "{{search.query}}". 
View All Results

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.

Try this example

Just head over to the example repository in Github.

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

The swarm master must have Python installed.

Deploy to Remote Swarm with codefresh.yml

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' ',')

Deploy to Remote Swarm using the pipeline's UI deploy step

  1. Select Codefresh's Deploy Images in the pipeline's and select codefresh/remote-docker:latest.

  2. As a deploy command use rdocker ${{RDOCKER_HOST}} docker stack deploy --compose-file docker-stack.yml ${{STACK_NAME}} .

  3. Make sure you define the following variables in the pipeline as defined in the previous part:

    • STACK_NAME
    • RDOCKER_HOST
    • SSH_KEY
    • SPLIT_CHAR

Notice: The UI deploy step will run on any build. Make sure that your automated builds run only on a specific branch trigger.

Docker SWARM