Merge pull request #125 from dokku/upgrade-version
Upgrade docker image versions
This commit is contained in:
@@ -2,8 +2,8 @@ dist: trusty
|
|||||||
language: bash
|
language: bash
|
||||||
env:
|
env:
|
||||||
- DOKKU_VERSION=master
|
- DOKKU_VERSION=master
|
||||||
- DOKKU_VERSION=v0.14.0
|
- DOKKU_VERSION=v0.17.0
|
||||||
- DOKKU_VERSION=v0.12.0
|
|
||||||
install: make setup
|
install: make setup
|
||||||
|
before_script: sudo sysctl -w vm.max_map_count=262144
|
||||||
script: make test
|
script: make test
|
||||||
after_failure: make report
|
after_failure: make report
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# dokku mongo [](https://travis-ci.org/dokku/dokku-mongo) [](https://webchat.freenode.net/?channels=dokku)
|
# dokku mongo [](https://travis-ci.org/dokku/dokku-mongo) [](https://webchat.freenode.net/?channels=dokku)
|
||||||
|
|
||||||
Official mongo plugin for dokku. Currently defaults to installing [mongo 3.4.20](https://hub.docker.com/_/mongo/).
|
Official mongo plugin for dokku. Currently defaults to installing [mongo 3.6.13](https://hub.docker.com/_/mongo/).
|
||||||
|
|
||||||
## requirements
|
## requirements
|
||||||
|
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ service_backup() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
docker run --rm $BACKUP_PARAMETERS dokku/s3backup:0.9.4
|
docker run --rm $BACKUP_PARAMETERS dokku/s3backup:0.10.0
|
||||||
}
|
}
|
||||||
|
|
||||||
service_backup_auth() {
|
service_backup_auth() {
|
||||||
@@ -586,6 +586,26 @@ service_parse_args() {
|
|||||||
shift "$((OPTIND - 1))" # remove options from positional parameters
|
shift "$((OPTIND - 1))" # remove options from positional parameters
|
||||||
}
|
}
|
||||||
|
|
||||||
|
service_password() {
|
||||||
|
declare desc="Fetch the password for a service"
|
||||||
|
declare SERVICE="$1"
|
||||||
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
|
local PASSWORD_FILE="$SERVICE_ROOT/PASSWORD"
|
||||||
|
if [[ -f "$PASSWORD_FILE" ]]; then
|
||||||
|
cat "$PASSWORD_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
service_root_password() {
|
||||||
|
declare desc="Fetch the root password for a service"
|
||||||
|
declare SERVICE="$1"
|
||||||
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
|
local PASSWORD_FILE="$SERVICE_ROOT/ROOTPASSWORD"
|
||||||
|
if [[ -f "$PASSWORD_FILE" ]]; then
|
||||||
|
cat "$PASSWORD_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
service_port_expose() {
|
service_port_expose() {
|
||||||
declare desc="Wrapper for exposing service ports"
|
declare desc="Wrapper for exposing service ports"
|
||||||
declare SERVICE="$1"
|
declare SERVICE="$1"
|
||||||
@@ -657,7 +677,7 @@ service_port_unpause() {
|
|||||||
echo "${PORTS[@]}" >"$PORT_FILE"
|
echo "${PORTS[@]}" >"$PORT_FILE"
|
||||||
|
|
||||||
# shellcheck disable=SC2046
|
# shellcheck disable=SC2046
|
||||||
docker run -d --link "$SERVICE_NAME:$PLUGIN_COMMAND_PREFIX" --name "$EXPOSED_NAME" $(docker_ports_options "${PORTS[@]}") --restart always --label dokku=ambassador --label "dokku.ambassador=$PLUGIN_COMMAND_PREFIX" dokku/ambassador:0.2.0 >/dev/null
|
docker run -d --link "$SERVICE_NAME:$PLUGIN_COMMAND_PREFIX" --name "$EXPOSED_NAME" $(docker_ports_options "${PORTS[@]}") --restart always --label dokku=ambassador --label "dokku.ambassador=$PLUGIN_COMMAND_PREFIX" dokku/ambassador:0.3.0 >/dev/null
|
||||||
if [[ "$LOG_FAIL" == "true" ]]; then
|
if [[ "$LOG_FAIL" == "true" ]]; then
|
||||||
dokku_log_info1 "Service $SERVICE exposed on port(s) [container->host]: $(service_exposed_ports "$SERVICE")"
|
dokku_log_info1 "Service $SERVICE exposed on port(s) [container->host]: $(service_exposed_ports "$SERVICE")"
|
||||||
fi
|
fi
|
||||||
|
|||||||
2
config
2
config
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
export MONGO_IMAGE=${MONGO_IMAGE:="mongo"}
|
export MONGO_IMAGE=${MONGO_IMAGE:="mongo"}
|
||||||
export MONGO_IMAGE_VERSION=${MONGO_IMAGE_VERSION:="3.4.20"}
|
export MONGO_IMAGE_VERSION=${MONGO_IMAGE_VERSION:="3.6.13"}
|
||||||
export MONGO_ROOT=${MONGO_ROOT:="$DOKKU_LIB_ROOT/services/mongo"}
|
export MONGO_ROOT=${MONGO_ROOT:="$DOKKU_LIB_ROOT/services/mongo"}
|
||||||
export MONGO_HOST_ROOT=${MONGO_HOST_ROOT:=$MONGO_ROOT}
|
export MONGO_HOST_ROOT=${MONGO_HOST_ROOT:=$MONGO_ROOT}
|
||||||
|
|
||||||
|
|||||||
19
functions
19
functions
@@ -14,7 +14,7 @@ service_connect() {
|
|||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
local PASSWORD="$(service_password "$SERVICE")"
|
||||||
local SERVICE_TTY_OPTS
|
local SERVICE_TTY_OPTS
|
||||||
has_tty && SERVICE_TTY_OPTS="-t"
|
has_tty && SERVICE_TTY_OPTS="-t"
|
||||||
|
|
||||||
@@ -83,8 +83,8 @@ service_create_container() {
|
|||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
local SERVICE_HOST_ROOT="$PLUGIN_DATA_HOST_ROOT/$SERVICE"
|
local SERVICE_HOST_ROOT="$PLUGIN_DATA_HOST_ROOT/$SERVICE"
|
||||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||||
local ROOTPASSWORD="$(cat "$SERVICE_ROOT/ROOTPASSWORD")"
|
local ROOTPASSWORD="$(service_root_password "$SERVICE")"
|
||||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
local PASSWORD="$(service_password "$SERVICE")"
|
||||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||||
|
|
||||||
if [[ -f "$SERVICE_ROOT/MONGO_CONFIG_OPTIONS" ]]; then
|
if [[ -f "$SERVICE_ROOT/MONGO_CONFIG_OPTIONS" ]]; then
|
||||||
@@ -96,7 +96,7 @@ service_create_container() {
|
|||||||
echo "$ID" >"$SERVICE_ROOT/ID"
|
echo "$ID" >"$SERVICE_ROOT/ID"
|
||||||
|
|
||||||
dokku_log_verbose_quiet "Waiting for container to be ready"
|
dokku_log_verbose_quiet "Waiting for container to be ready"
|
||||||
docker run --rm --link "$SERVICE_NAME:$PLUGIN_COMMAND_PREFIX" dokku/wait:0.3.0 -p "$PLUGIN_DATASTORE_WAIT_PORT" >/dev/null
|
docker run --rm --link "$SERVICE_NAME:$PLUGIN_COMMAND_PREFIX" dokku/wait:0.4.0 -p "$PLUGIN_DATASTORE_WAIT_PORT" >/dev/null
|
||||||
|
|
||||||
echo "db.createUser({user:'admin',pwd:'$ROOTPASSWORD',roles:[{role:'userAdminAnyDatabase',db:'admin'},{role:'__system',db:'admin'},{role:'root',db:'admin'}]})" | docker exec -i "$SERVICE_NAME" mongo admin >/dev/null
|
echo "db.createUser({user:'admin',pwd:'$ROOTPASSWORD',roles:[{role:'userAdminAnyDatabase',db:'admin'},{role:'__system',db:'admin'},{role:'root',db:'admin'}]})" | docker exec -i "$SERVICE_NAME" mongo admin >/dev/null
|
||||||
echo "db.createUser({user:'$SERVICE',pwd:'$PASSWORD',roles:[{role:'readWrite',db:'$DATABASE_NAME'}]})" | docker exec -i "$SERVICE_NAME" mongo -u admin -p "$ROOTPASSWORD" --authenticationDatabase admin "$DATABASE_NAME" >/dev/null
|
echo "db.createUser({user:'$SERVICE',pwd:'$PASSWORD',roles:[{role:'readWrite',db:'$DATABASE_NAME'}]})" | docker exec -i "$SERVICE_NAME" mongo -u admin -p "$ROOTPASSWORD" --authenticationDatabase admin "$DATABASE_NAME" >/dev/null
|
||||||
@@ -109,7 +109,7 @@ service_export() {
|
|||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
local PASSWORD="$(service_password "$SERVICE")"
|
||||||
|
|
||||||
[[ -n $SSH_TTY ]] && stty -opost
|
[[ -n $SSH_TTY ]] && stty -opost
|
||||||
docker exec "$SERVICE_NAME" bash -c "mongodump -d $DATABASE_NAME -u \"$SERVICE\" -p \"$PASSWORD\" --authenticationDatabase \"$DATABASE_NAME\" --quiet --gzip --archive 2>/dev/null"
|
docker exec "$SERVICE_NAME" bash -c "mongodump -d $DATABASE_NAME -u \"$SERVICE\" -p \"$PASSWORD\" --authenticationDatabase \"$DATABASE_NAME\" --quiet --gzip --archive 2>/dev/null"
|
||||||
@@ -124,7 +124,7 @@ service_import() {
|
|||||||
local SERVICE_HOST_ROOT="$PLUGIN_DATA_HOST_ROOT/$SERVICE"
|
local SERVICE_HOST_ROOT="$PLUGIN_DATA_HOST_ROOT/$SERVICE"
|
||||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
local PASSWORD="$(service_password "$SERVICE")"
|
||||||
|
|
||||||
if [[ -t 0 ]]; then
|
if [[ -t 0 ]]; then
|
||||||
dokku_log_fail "No data provided on stdin."
|
dokku_log_fail "No data provided on stdin."
|
||||||
@@ -149,8 +149,8 @@ service_start() {
|
|||||||
|
|
||||||
dokku_log_info2_quiet "Starting container"
|
dokku_log_info2_quiet "Starting container"
|
||||||
local PREVIOUS_ID=$(docker ps -aq --no-trunc --filter "status=exited" --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
local PREVIOUS_ID=$(docker ps -aq --no-trunc --filter "status=exited" --filter "name=^/$SERVICE_NAME$" --format '{{ .ID }}') || true
|
||||||
local ROOTPASSWORD="$(cat "$SERVICE_ROOT/ROOTPASSWORD")"
|
local ROOTPASSWORD="$(service_root_password "$SERVICE")"
|
||||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
local PASSWORD="$(service_password "$SERVICE")"
|
||||||
|
|
||||||
if [[ -n $PREVIOUS_ID ]]; then
|
if [[ -n $PREVIOUS_ID ]]; then
|
||||||
docker start "$PREVIOUS_ID" >/dev/null
|
docker start "$PREVIOUS_ID" >/dev/null
|
||||||
@@ -165,9 +165,8 @@ service_start() {
|
|||||||
|
|
||||||
service_url() {
|
service_url() {
|
||||||
local SERVICE="$1"
|
local SERVICE="$1"
|
||||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
|
||||||
local SERVICE_DNS_HOSTNAME="$(service_dns_hostname "$SERVICE")"
|
local SERVICE_DNS_HOSTNAME="$(service_dns_hostname "$SERVICE")"
|
||||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
local PASSWORD="$(service_password "$SERVICE")"
|
||||||
echo "$PLUGIN_SCHEME://$SERVICE:$PASSWORD@$SERVICE_DNS_HOSTNAME:${PLUGIN_DATASTORE_PORTS[0]}/$DATABASE_NAME"
|
echo "$PLUGIN_SCHEME://$SERVICE:$PASSWORD@$SERVICE_DNS_HOSTNAME:${PLUGIN_DATASTORE_PORTS[0]}/$DATABASE_NAME"
|
||||||
}
|
}
|
||||||
|
|||||||
8
install
8
install
@@ -17,10 +17,10 @@ plugin-install() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pull-docker-image "${PLUGIN_IMAGE}:${PLUGIN_IMAGE_VERSION}"
|
pull-docker-image "${PLUGIN_IMAGE}:${PLUGIN_IMAGE_VERSION}"
|
||||||
pull-docker-image "dokku/ambassador:0.2.0"
|
pull-docker-image "busybox:1.31.0-uclibc"
|
||||||
pull-docker-image "dokku/wait:0.3.0"
|
pull-docker-image "dokku/ambassador:0.3.0"
|
||||||
pull-docker-image "dokku/s3backup:0.9.4"
|
pull-docker-image "dokku/s3backup:0.10.0"
|
||||||
pull-docker-image "busybox:1.30.1-uclibc"
|
pull-docker-image "dokku/wait:0.4.0"
|
||||||
|
|
||||||
mkdir -p "$PLUGIN_DATA_ROOT" || echo "Failed to create $PLUGIN_SERVICE data directory"
|
mkdir -p "$PLUGIN_DATA_ROOT" || echo "Failed to create $PLUGIN_SERVICE data directory"
|
||||||
chown dokku:dokku "$PLUGIN_DATA_ROOT"
|
chown dokku:dokku "$PLUGIN_DATA_ROOT"
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ service-connect-admin-cmd() {
|
|||||||
verify_service_name "$SERVICE"
|
verify_service_name "$SERVICE"
|
||||||
SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||||
SERVICE_NAME="$(get_service_name "$SERVICE")"
|
SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||||
PASSWORD="$(cat "$SERVICE_ROOT/ROOTPASSWORD")"
|
PASSWORD="$(service_root_password "$SERVICE")"
|
||||||
has_tty && SERVICE_TTY_OPTS="-t"
|
has_tty && SERVICE_TTY_OPTS="-t"
|
||||||
|
|
||||||
docker exec -i $SERVICE_TTY_OPTS "$SERVICE_NAME" mongo -u admin -p "$PASSWORD" --authenticationDatabase admin "$SERVICE"
|
docker exec -i $SERVICE_TTY_OPTS "$SERVICE_NAME" mongo -u admin -p "$PASSWORD" --authenticationDatabase admin "$SERVICE"
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ service-destroy-cmd() {
|
|||||||
service_container_rm "$SERVICE"
|
service_container_rm "$SERVICE"
|
||||||
|
|
||||||
dokku_log_verbose_quiet "Removing data"
|
dokku_log_verbose_quiet "Removing data"
|
||||||
docker run --rm -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/config:/config" busybox:1.30.1-uclibc chmod 777 -R /config /data
|
docker run --rm -v "$SERVICE_HOST_ROOT/data:/data" -v "$SERVICE_HOST_ROOT/config:/config" busybox:1.31.0-uclibc chmod 777 -R /config /data
|
||||||
rm -rf "$SERVICE_ROOT"
|
rm -rf "$SERVICE_ROOT"
|
||||||
|
|
||||||
dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE"
|
dokku_log_info2 "$PLUGIN_SERVICE container deleted: $SERVICE"
|
||||||
|
|||||||
@@ -11,20 +11,20 @@ teardown() {
|
|||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:list) with no exposed ports, no linked apps" {
|
@test "($PLUGIN_COMMAND_PREFIX:list) with no exposed ports, no linked apps" {
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:list"
|
run dokku "$PLUGIN_COMMAND_PREFIX:list"
|
||||||
assert_contains "${lines[*]}" "l mongo:3.4.20 running - -"
|
assert_contains "${lines[*]}" "l mongo:3.6.13 running - -"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:list) with exposed ports" {
|
@test "($PLUGIN_COMMAND_PREFIX:list) with exposed ports" {
|
||||||
dokku "$PLUGIN_COMMAND_PREFIX:expose" l 4242 4243 4244 4245
|
dokku "$PLUGIN_COMMAND_PREFIX:expose" l 4242 4243 4244 4245
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:list"
|
run dokku "$PLUGIN_COMMAND_PREFIX:list"
|
||||||
assert_contains "${lines[*]}" "l mongo:3.4.20 running 27017->4242 27018->4243 27019->4244 28017->4245 -"
|
assert_contains "${lines[*]}" "l mongo:3.6.13 running 27017->4242 27018->4243 27019->4244 28017->4245 -"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "($PLUGIN_COMMAND_PREFIX:list) with linked app" {
|
@test "($PLUGIN_COMMAND_PREFIX:list) with linked app" {
|
||||||
dokku apps:create my_app
|
dokku apps:create my_app
|
||||||
dokku "$PLUGIN_COMMAND_PREFIX:link" l my_app
|
dokku "$PLUGIN_COMMAND_PREFIX:link" l my_app
|
||||||
run dokku "$PLUGIN_COMMAND_PREFIX:list"
|
run dokku "$PLUGIN_COMMAND_PREFIX:list"
|
||||||
assert_contains "${lines[*]}" "l mongo:3.4.20 running - my_app"
|
assert_contains "${lines[*]}" "l mongo:3.6.13 running - my_app"
|
||||||
dokku --force apps:destroy my_app
|
dokku --force apps:destroy my_app
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user