A Docker image meant for use with CI/CD pipelines
Assuming a Docker image can be run as a CI task with environment variables injected, the following CI systems will have their variables automatically detected:
This image provides two binaries for external usage:
dokku-deploy
: Triggers an app deploy at the configuredGIT_REMOTE_URL
dokku-unlock
: Unlocks deploys for an app at the configuredGIT_REMOTE_URL
To run either binary, the following docker
command can be used from a
directory containing a non-shallow clone of the repository being deployed:
# where the `.env` file contains `GIT_REMOTE_URL` and `SSH_PRIVATE_KEY`
# deploy
docker run --rm -v="$PWD:/app" --env-file=.env dokku/ci-docker-image dokku-deploy
# unlock
docker run --rm -v="$PWD:/app" --env-file=.env dokku/ci-docker-image dokku-unlock
The following environment variables are supported:
BRANCH
:- description: The branch to deploy when pushing to Dokku
- required: false
- default: ''master
CI_BRANCH_NAME
- description: The branch name that triggered the deploy. Interpolated if unavailable.
- required: false
- default: ''
CI_COMMIT
- description: The commit sha that will be pushed. Interpolated if unavailable.
- required: false
- default: ''
COMMAND
:- description: The command to run for the action
- required: false
- default: 'deploy'
GIT_REMOTE_URL:
- description: The dokku app's git repository url (in SSH format)
- required: true
GIT_PUSH_FLAGS:
- description: A string containing a set of flags to set on push
- required: false
REVIEW_APP_NAME
:- description: The name of the review app to create or destroy
- required: false
- default: 'review-$APP_NAME-$CI_BRANCH_NAME'
SSH_HOST_KEY
:- description: The results of running
ssh-keyscan -t rsa $HOST
- required: false
- default: ''
- description: The results of running
SSH_PRIVATE_KEY
:- description: A private SSH key that has push acces to your Dokku instance
- required: true
docker build dokku/ci-docker-image .