Skip to content

astappiev/docker-compose-remote-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 96.6%
  • Dockerfile 3.4%