Skip to content

Docker Compose Remote (SSH) Deploy

Actions
The action uses SSH (with tunnel, optional) to deploy using docker compose up or docker stack deploy on remote host
v1
Latest
Star (8)

Docker Compose Remote Action

This action packs contents of the action workspace into archive. Logs into remote host via ssh. Unpacks the workspace there and runs docker compose up -d command.

Inputs

Required

  • ssh_user - Remote user which should have access to docker.
  • ssh_host - Remote host name.
  • ssh_private_key - Private SSH key used for logging into remote system. Please, keep your key securely in GitHub secrets.
  • ssh_host_public_key - Remote host SSH public key (The content of ~/.ssh/known_hosts needs to be given here).

Optional

  • ssh_port - Remote port for SSH connection. Default is 22.
  • ssh_jump_host - Jump host name. If set, ssh_jump_public_key is required.
  • ssh_jump_public_key - Jump host SSH public key (The content of ~/.ssh/known_hosts needs to be given here).
  • docker_compose_prefix - Project name passed to compose. Each docker container will have this prefix in name. Required if docker_use_stack is true.
  • docker_compose_filename - Path to the docker-compose file in the repository. Default is docker-compose.yml.
  • docker_args - Docker compose arguments. Default is -d --remove-orphans --build.
  • docker_use_stack - Use docker stack instead of docker-compose. Default is false.
  • docker_env - Docker Environment variables.
  • workspace - A project directory to use. Default is ~/workspace.
  • workspace_keep - Whether to keep the workspace directory after the action has finished. Default is false.
  • container_registry - Container registry server to use.
  • container_registry_username - Container registry username.
  • container_registry_password - Container registry password.

Usage example

Let's say we have a repo with single docker-compose file in it and remote ubuntu based server with docker and docker-compose installed.

Setup a github-actions workflow (e.g. .github/workflows/main.yml):

name: Deploy

on:
  push:
    branches: [ master ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: astappiev/docker-compose-remote-action@master
      name: Docker-Compose Remote Deployment
      with:
        ssh_host: example.com
        ssh_user: ${{ secrets.DEPLOY_USERNAME }}
        ssh_private_key: ${{ secrets.DEPLOY_PRIVATE_KEY }}
        ssh_host_public_key: ${{ secrets.DEPLOY_PUBLIC_KEY }}
        docker_compose_prefix: myapp

Docker Compose Remote (SSH) Deploy is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

The action uses SSH (with tunnel, optional) to deploy using docker compose up or docker stack deploy on remote host
v1
Latest

Docker Compose Remote (SSH) Deploy is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.