Compare commits
12 Commits
3ec54a128a
...
fix
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ab8b2997c | |||
| 59b017690d | |||
| 5338247b08 | |||
| b8bb637fb2 | |||
| 5b1e185867 | |||
| e6a76a28ca | |||
| 87349b1fc8 | |||
| e8b7bda08f | |||
| 5e5c5eeda2 | |||
| 45da665ce0 | |||
| 1ec01bdf99 | |||
| 83c611bb20 |
10
Dockerfile
10
Dockerfile
@@ -1,8 +1,10 @@
|
||||
FROM alpinelinux/docker-compose
|
||||
FROM docker
|
||||
COPY --from=docker/compose-bin:edge /docker-compose /usr/libexec/docker/cli-plugins/docker-compose
|
||||
RUN docker compose version
|
||||
|
||||
LABEL 'name'='Docker Deployment Action'
|
||||
LABEL 'com.github.actions.name'='Docker Deployment'
|
||||
LABEL 'com.github.actions.description'='supports docker-compose and Docker Swarm deployments'
|
||||
LABEL 'name'='Docker Compose Remote Deployment Action'
|
||||
LABEL 'com.github.actions.name'='Docker Compose Remote Deployment'
|
||||
LABEL 'com.github.actions.description'='supports docker-compose remotely through ssh.'
|
||||
LABEL 'com.github.actions.icon'='send'
|
||||
LABEL 'com.github.actions.color'='green'
|
||||
|
||||
|
||||
20
README.md
20
README.md
@@ -25,25 +25,23 @@ Below is a brief example on how the action can be used:
|
||||
|
||||
## Input Configurations
|
||||
### `remote_docker_host`
|
||||
Remote Docker host ie (user@host).
|
||||
Remote Docker host.
|
||||
### `remote_docker_user`
|
||||
Remote Docker user.
|
||||
### `remote_docker_port`
|
||||
Remote Docker ssh port ie (22).
|
||||
### `ssh_public_key`
|
||||
Remote Docker SSH public key eg (~/.ssh/rsa_id.pub).
|
||||
### `ssh_private_key`
|
||||
SSH private key used to connect to the docker host eg (~/.ssh/rsa_id).
|
||||
### `ssh_proxy_cmd`
|
||||
SSH ProxyCommand used to connect to the docker host.
|
||||
### `args`
|
||||
Deployment command args.
|
||||
### `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.
|
||||
The absolute path on remote docker host to deploy, default rely on repo working directory.
|
||||
### `stack_file_name`
|
||||
Docker stack file used. Default is docker-compose.yml.
|
||||
### `keep_files`
|
||||
Number of the files to be kept on the server. Default is 3.
|
||||
Compose configuration files.
|
||||
### `env_file_name`
|
||||
Specify an alternate environment file.
|
||||
### `docker_prune`
|
||||
A boolean input to trigger docker prune command. Default is false.
|
||||
### `pre_deployment_command_args`
|
||||
|
||||
10
action.yml
10
action.yml
@@ -11,9 +11,6 @@ inputs:
|
||||
description: Remote Docker ssh port ie (22).
|
||||
required: false
|
||||
default: '22'
|
||||
# ssh_public_key:
|
||||
# description: Remote Docker SSH public key eg (~/.ssh/rsa_id.pub).
|
||||
# required: true
|
||||
ssh_private_key:
|
||||
description: SSH private key used to connect to the docker host eg (~/.ssh/rsa_id).
|
||||
required: true
|
||||
@@ -24,7 +21,7 @@ inputs:
|
||||
description: Deployment command args.
|
||||
required: true
|
||||
deploy_path:
|
||||
description: The absolute path on remote docker host to deploy, default rely on repo working directory .
|
||||
description: The absolute path on remote docker host to deploy, default rely on repo working directory.
|
||||
required: false
|
||||
stack_file_name:
|
||||
description: Compose configuration files.
|
||||
@@ -32,15 +29,14 @@ inputs:
|
||||
env_file_name:
|
||||
description: Specify an alternate environment file.
|
||||
required: false
|
||||
keep_files:
|
||||
description: Number of the files to be kept on the server. Default is 3.
|
||||
required: false
|
||||
docker_prune:
|
||||
description: A boolean input to trigger docker prune command. Default is false.
|
||||
required: false
|
||||
pre_deployment_command_args:
|
||||
description: The args for the pre deploument command.
|
||||
required: false
|
||||
pull_images_first:
|
||||
description: Pull docker images before deploying. Default is false.
|
||||
docker_registry_username:
|
||||
description: The docker registry username.
|
||||
required: false
|
||||
|
||||
@@ -30,7 +30,7 @@ if ! [ -z "${INPUT_DEPLOY_PATH+x}" ] && ! [ -z "$INPUT_DEPLOY_PATH" ]; then
|
||||
echo "Current: `pwd`"
|
||||
echo "Target: $INPUT_DEPLOY_PATH"
|
||||
mkdir -p $INPUT_DEPLOY_PATH
|
||||
cp -rfp ./. $INPUT_DEPLOY_PATH
|
||||
cp -rfp `pwd`/. $INPUT_DEPLOY_PATH
|
||||
cd $INPUT_DEPLOY_PATH
|
||||
fi
|
||||
|
||||
@@ -58,6 +58,7 @@ echo " Port $INPUT_REMOTE_DOCKER_PORT" >> ~/.ssh/config
|
||||
echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config
|
||||
echo " StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
echo " UserKnownHostsFile /dev/null" >> ~/.ssh/config
|
||||
echo " ConnectTimeout 300" >> ~/.ssh/config
|
||||
if ! [ -z "${INPUT_SSH_PROXY_CMD+x}" ] && ! [ -z "$INPUT_SSH_PROXY_CMD" ]; then
|
||||
echo "Add ProxyCommand: $INPUT_SSH_PROXY_CMD"
|
||||
echo " ProxyCommand $INPUT_SSH_PROXY_CMD" >> ~/.ssh/config
|
||||
@@ -65,6 +66,9 @@ fi
|
||||
echo >> ~/.ssh/config
|
||||
chmod 600 ~/.ssh/config
|
||||
|
||||
docker -v
|
||||
docker compose version
|
||||
|
||||
set context
|
||||
echo "Create docker context"
|
||||
docker context create remote --docker "host=ssh://REMOTE_DOCKER_HOST"
|
||||
@@ -77,7 +81,7 @@ if ! [ -z "${INPUT_DOCKER_REGISTRY_USERNAME+x}" ] && ! [ -z "$INPUT_DOCKER_REGIS
|
||||
fi
|
||||
|
||||
if ! [ -z "${INPUT_DOCKER_PRUNE+x}" ] && [ $INPUT_DOCKER_PRUNE = 'true' ] ; then
|
||||
yes | docker --log-level debug --host "ssh://$INPUT_REMOTE_DOCKER_HOST:$INPUT_REMOTE_DOCKER_PORT" system prune -a 2>&1
|
||||
yes | docker --log-level debug system prune -a 2>&1
|
||||
fi
|
||||
|
||||
DEPLOYMENT_COMMAND="docker --log-level=debug compose"
|
||||
@@ -90,6 +94,14 @@ if ! [ -z "${INPUT_ENV_FILE_NAME+x}" ] && ! [ -z "$INPUT_ENV_FILE_NAME" ]; then
|
||||
DEPLOYMENT_COMMAND="$DEPLOYMENT_COMMAND --env-file ${INPUT_ENV_FILE_NAME//,/ --env-file }"
|
||||
fi
|
||||
|
||||
echo "Connecting to $INPUT_REMOTE_DOCKER_HOST... Command: ${DEPLOYMENT_COMMAND} config"
|
||||
${DEPLOYMENT_COMMAND} "config"
|
||||
|
||||
if ! [ -z "${INPUT_PULL_IMAGES_FIRST+x}" ] && [ $INPUT_PULL_IMAGES_FIRST = 'true' ] ; then
|
||||
echo "Connecting to $INPUT_REMOTE_DOCKER_HOST... Command: ${DEPLOYMENT_COMMAND} pull"
|
||||
${DEPLOYMENT_COMMAND} "pull"
|
||||
fi
|
||||
|
||||
# DEPLOYMENT_COMMAND_OPTIONS=""
|
||||
|
||||
echo "Connecting to $INPUT_REMOTE_DOCKER_HOST... Command: ${DEPLOYMENT_COMMAND} ${INPUT_ARGS}"
|
||||
|
||||
Reference in New Issue
Block a user