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_URLdokku-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-unlockThe 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 .