Docker Deployment Action¶
A GitHub Action that supports docker-compose and Docker Swarm deployments.
Examples¶
Below is a brief examples on how the action can be used:
- name: Deploy to Docker swarm
  uses: wshihadeh/docker-deployment-action@v1
  with:
    remote_docker_host: user@myswarm.com
    ssh_private_key: ${{ secrets.DOCKER_SSH_PRIVATE_KEY }}
    ssh_public_key: ${{ secrets.DOCKER_SSH_PUBLIC_KEY }}
    deployment_mode: docker-swarm
    args: my_applicaion- name: Deploy to Docker Host
  uses: wshihadeh/docker-deployment-action@v1
  with:
    remote_docker_host: user@myswarm.com
    ssh_private_key: ${{ secrets.DOCKER_SSH_PRIVATE_KEY }}
    ssh_public_key: ${{ secrets.DOCKER_SSH_PUBLIC_KEY }}
    deployment_mode: docker-compose
    args: up -d
    pre_deployment_command_args: 'bundle exec rake db:migrate'
    docker_prune: 'true'
    pull_images_first: 'true'- name: Deploy to Docker Host
  uses: wshihadeh/docker-deployment-action@v1
  with:
    remote_docker_host: user@myswarm.com
    ssh_private_key: ${{ secrets.DOCKER_SSH_PRIVATE_KEY }}
    ssh_public_key: ${{ secrets.DOCKER_SSH_PUBLIC_KEY }}
    deployment_mode: docker-compose
    copy_stack_file: true
    deploy_path: /root/my-deployment
    stack_file_name: docker-compose.yaml
    keep_files: 5
    args: up -d
    docker_prune: 'false'
    pull_images_first: 'false'- name: Deploy to Docker swarm
  uses: wshihadeh/docker-deployment-action@v1
  with:
    remote_docker_host: user@myswarm.com
    ssh_private_key: ${{ secrets.DOCKER_SSH_PRIVATE_KEY }}
    ssh_public_key: ${{ secrets.DOCKER_SSH_PUBLIC_KEY }}
    deployment_mode: docker-swarm
    copy_stack_file: true
    deploy_path: /root/my-deployment
    stack_file_name: docker-stack.yaml
    keep_files: 5
    args: my_applicaionInput Configurations¶
Below are all of the supported inputs. Some inputs are considered sensitive information and it should be stored as secrets.
args¶
Arguments to pass to the deployment command either  docker  or docker-compose. The actions will automatically generate the follwing commands for each of the cases.
- docker stack deploy --compose-file $FILE --log-level debug --host $HOST
- docker-compose -f $INPUT_STACK_FILE_NAME
remote_docker_host¶
Specify Remote Docker host. The input value must be in the follwing format (user@host)
ssh_public_key¶
Remote Docker SSH public key.
ssh_private_key¶
SSH private key used to connect to the docker host
deployment_mode¶
Deployment mode either docker-swarm or docker-compose. Default is docker-compose.
copy_stack_file¶
Copy stack file to remote server and deploy from the server. Default is false.
deploy_path¶
The path where the stack files will be copied to. Default ~/docker-deployment.
stack_file_name¶
Docker stack file used. Default is docker-compose.yaml
keep_files¶
Number of the files to be kept on the server. Default is 3.
docker_prune¶
A boolean input to trigger docker prune command.
pre_deployment_command_args¶
The args for the pre deploument command. Applicable only for docker-compose.
pull_images_first¶
Pull docker images before deploying. Applicable only for docker-compose.
License¶
This project is licensed under the MIT license. See the LICENSE file for details.