A GitHub Action for docker-compose deployments on a remote host using SSH.
The Action is adapted from work by wshihadeh
Below is an example of how the action can be used
- name: Start Deployment
uses: TapTap21/[email protected]
with:
remote_docker_host: [email protected]
ssh_private_key: ${{ secrets.DOCKER_SSH_PRIVATE_KEY }}
ssh_public_key: ${{ secrets.DOCKER_SSH_PUBLIC_KEY }}
stack_file_name: docker-compose.yml
docker_login_password: ${{ secrets.DOCKER_REPO_PASSWORD }}
docker_login_user: ${{ secrets.DOCKER_REPO_USERNAME }}
docker_login_registry : ${{ steps.login-ecr.outputs.registry }}
args: -p myapp up -d
Use the latest tag to run the latest build or a specific version tag. The action pulls a docker image instead of building one to improve performance.
Below is a breakdown of the expected action inputs.
Docker-compose runtime arguments and options. Below is a common usage example:
-p app_stack_name -d up
Specify Remote Docker host. The input value must be in the following format (user@host)
Remote Docker SSH public key.
SSH private key used to connect to the docker host.
SSH key must be in PEM format (begins with -----BEGIN RSA PRIVATE KEY-----)
The SSH port to be used. Default is 22.
Docker stack file(s) used. Can be several files seperated by commas that will be passed to docker-compose in order. Default is running docker-compose without any -f flags (which will use docker-compose.yml overriden by docker-compose.override.yml if there is one).
The username for the container repository user. (DockerHub, ECR, etc.)
The password for the container repository user.
The docker container registry to authenticate against
This project is licensed under the MIT license. See the LICENSE file for details.