Merge pull request #2297 from dokku/override-image-repo

Override image repo
This commit is contained in:
Jose Diaz-Gonzalez
2016-07-05 11:58:48 -04:00
committed by GitHub
5 changed files with 35 additions and 5 deletions

View File

@@ -177,6 +177,23 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
echo 'not-latest'
```
### `deployed-app-image-repo`
- Description: Used to manage the full repo of the image being deployed. Useful for deploying from an external registry where the repository name is not `dokku/$APP`
- Invoked by: `internal function dokku_deploy_cmd() (deploy phase)`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
APP="$1"
# change the repo from dokku/APP to dokkupaas/APP
echo "dokkupaas/$APP"
```
### `deployed-app-repository`
- Description: Used to manage the remote repository of the image being deployed.
@@ -211,7 +228,7 @@ cache-bust-build-arg() {
local APP="$1" IMAGE_SOURCE_TYPE="$2"
local output=""
if [[ "$IMAGE_SOURCE_TYPE" == "dockerfile" ]]; then
if [[ "$IMAGE_SOURCE_TYPE" == "dockerfile" ]]; then
output=" --build-arg CACHEBUST=$(date +%s)"
fi
echo -n "$STDIN$output"

View File

@@ -23,7 +23,7 @@ get_phase_script() {
execute_script() {
declare desc="executes appropriate phase script key from app.json"
local APP="$1"; local IMAGE_TAG="$2"; local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG")
local APP="$1"; local IMAGE_TAG="$2"; local IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG")
local PHASE_SCRIPT_KEY="$3"
local SCRIPT_CMD=$(get_phase_script "$IMAGE" "$PHASE_SCRIPT_KEY" 2>/dev/null)
if [[ -n "$SCRIPT_CMD" ]];then
@@ -49,6 +49,8 @@ execute_script() {
COMMAND+=" fi "
local CACHE_DIR="$DOKKU_ROOT/$APP/cache"
[[ -d $CACHE_DIR ]] || mkdir -p "$CACHE_DIR"
local DOCKER_ARGS=$(: | plugn trigger docker-args-deploy "$APP" "$IMAGE_TAG")
# strip --restart args from DOCKER_ARGS
local DOCKER_ARGS=$(sed -e "s/--restart=[[:graph:]]\+[[:blank:]]\?//g" <<< "$DOCKER_ARGS")

View File

@@ -8,7 +8,7 @@ dokku_run_cmd() {
declare desc="runs command in container based on app image"
local cmd="run"
[[ -z $2 ]] && dokku_log_fail "Please specify an app to run the command on"
local APP="$2"; local IMAGE_TAG=$(get_running_image_tag "$APP"); local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG")
local APP="$2"; local IMAGE_TAG=$(get_running_image_tag "$APP"); local IMAGE=$(get_deploying_app_image_name "$APP" "$IMAGE_TAG")
verify_app_name "$APP"
shift 2

View File

@@ -0,0 +1 @@
hook

View File

@@ -172,14 +172,20 @@ get_deploying_app_image_name() {
local APP="$1"; local IMAGE_TAG="$2";
[[ -z "$APP" ]] && dokku_log_fail "(get_app_image_name) APP must not be null"
local IMAGE_REPO=""
local IMAGE_REMOTE_REPOSITORY=$(plugn trigger deployed-app-repository "$APP")
local NEW_IMAGE_TAG=$(plugn trigger deployed-app-image-tag "$APP")
local NEW_IMAGE_REPO=$(plugn trigger deployed-app-image-repo "$APP")
if [[ -n "$NEW_IMAGE_TAG" ]]; then
IMAGE_TAG="$NEW_IMAGE_TAG"
fi
local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG")
if [[ -n "$NEW_IMAGE_REPO" ]]; then
IMAGE_REPO="$NEW_IMAGE_REPO"
fi
local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG" "$IMAGE_REPO")
if [[ -n "$IMAGE_REMOTE_REPOSITORY" ]]; then
IMAGE="${IMAGE_REMOTE_REPOSITORY}${IMAGE}"
fi
@@ -188,9 +194,13 @@ get_deploying_app_image_name() {
get_app_image_name() {
declare desc="return image identifier for a given app, tag tuple. validate if tag is presented"
local APP="$1"; local IMAGE_TAG="$2"; local IMAGE_REPO=$(get_app_image_repo "$APP")
local APP="$1"; local IMAGE_TAG="$2"; IMAGE_REPO="$3"
[[ -z "$APP" ]] && dokku_log_fail "(get_app_image_name) APP must not be null"
if [[ -z "$IMAGE_REPO" ]]; then
IMAGE_REPO=$(get_app_image_repo "$APP")
fi
if [[ -n "$IMAGE_TAG" ]]; then
local IMAGE="$IMAGE_REPO:$IMAGE_TAG"
verify_image "$IMAGE" || dokku_log_fail "app image ($IMAGE) not found"