remove dinghy from docker_dev scripts
dinghy is deprecated so we are removing it from our docker setup scripts, now defaulting to mutagen with docker desktop for mac. flag = none closes: DE-1099 Test Plan: -Jenkins passes -run docker_dev_setup from clean machine -setup uses mutagen with docker desktop on mac -setup uses mutagen with docker on linux -dinghy_http_proxy can still be used -if dinghy machine found running, fail script with message Change-Id: I1916c16807e7893174f32074674125cec93bcb40 Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/287535 Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com> Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com> QA-Review: James Butters <jbutters@instructure.com> Product-Review: James Butters <jbutters@instructure.com>
This commit is contained in:
parent
f4be7b34bb
commit
08965f67ca
|
@ -152,17 +152,21 @@ function copy_docker_config {
|
|||
confirm_command 'cp docker-compose/config/*.yml config/' || true
|
||||
}
|
||||
|
||||
function copy_mutagen_override {
|
||||
message "Copying default configuration from docker-compose/mutagen/docker-compose.override.yml to docker-compose.override.yml"
|
||||
cp docker-compose/mutagen/docker-compose.override.yml docker-compose.override.yml
|
||||
}
|
||||
|
||||
function setup_docker_compose_override {
|
||||
message 'Setup override yaml and .env...'
|
||||
if is_mutagen; then
|
||||
message "Copying default configuration from docker-compose/mutagen/docker-compose.override.yml to docker-compose.override.yml"
|
||||
cp docker-compose/mutagen/docker-compose.override.yml docker-compose.override.yml
|
||||
elif [ -f "docker-compose.override.yml" ]; then
|
||||
message "docker-compose.override.yml exists, skipping copy of default configuration"
|
||||
if [ -f "docker-compose.override.yml" ]; then
|
||||
prompt 'docker-compose.override.yml already exists.
|
||||
Would you like to copy docker-compose/mutagen/docker-compose.override.yml to docker-compose.override.yml? [y/n]' copy
|
||||
[[ ${copy:-y} == 'n' ]] || copy_mutagen_override
|
||||
else
|
||||
message "Copying default configuration from config/docker-compose.override.yml.example to docker-compose.override.yml"
|
||||
cp config/docker-compose.override.yml.example docker-compose.override.yml
|
||||
copy_mutagen_override
|
||||
fi
|
||||
|
||||
if [ -f ".env" ]; then
|
||||
prompt '.env file exists, would you like to reset it to default? [y/n]' confirm
|
||||
[[ ${confirm:-n} == 'y' ]] || return 0
|
||||
|
|
|
@ -2,15 +2,11 @@
|
|||
source script/common/utils/common.sh
|
||||
source script/common/os/linux/impl.sh
|
||||
source script/common/utils/dory_setup.sh
|
||||
dependencies='docker,docker-compose 1.20.0'
|
||||
dependencies='docker,docker-compose 1.20.0,mutagen 0.13.0,mutagen-compose'
|
||||
|
||||
message "It looks like you're using Linux. Let's set that up."
|
||||
|
||||
if is_mutagen; then
|
||||
dependencies+=',mutagen 0.13.0,mutagen-compose'
|
||||
print_mutagen_intro
|
||||
fi
|
||||
|
||||
print_mutagen_intro
|
||||
set_service_util
|
||||
check_dependencies
|
||||
check_for_dory
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
#!/bin/bash
|
||||
source script/common/utils/common.sh
|
||||
source script/common/utils/dinghy_setup.sh
|
||||
source script/common/utils/dinghy_proxy_setup.sh
|
||||
source script/common/utils/dory_setup.sh
|
||||
source script/common/utils/docker_desktop_setup.sh
|
||||
|
||||
dependencies='docker,docker-compose 1.20.0,mutagen 0.13.0,mutagen-compose'
|
||||
|
||||
function dory_or_dinghy() {
|
||||
if $(installed dory) && $(! [[ "$(docker ps -aq --filter ancestor=codekitchen/dinghy-http-proxy)" == "" ]]); then
|
||||
message 'Found both dory and dinghy_http_proxy!'
|
||||
|
@ -26,18 +28,9 @@ function dory_or_dinghy() {
|
|||
}
|
||||
|
||||
message "It looks like you're using a Mac. Let's set that up."
|
||||
|
||||
if is_mutagen; then
|
||||
print_mutagen_intro
|
||||
dependencies='docker,mutagen 0.13.0,mutagen-compose'
|
||||
check_dependencies
|
||||
check_for_docker_desktop
|
||||
docker_running &> /dev/null || attempt_start_docker
|
||||
check_docker_memory
|
||||
dory_or_dinghy
|
||||
else
|
||||
dependencies='docker,docker-machine,docker-compose 1.20.0,dinghy'
|
||||
check_dependencies
|
||||
create_dinghy_vm
|
||||
start_dinghy_vm
|
||||
fi
|
||||
print_mutagen_intro
|
||||
check_dependencies
|
||||
check_for_docker_desktop
|
||||
docker_running &> /dev/null || attempt_start_docker
|
||||
check_docker_memory
|
||||
dory_or_dinghy
|
||||
|
|
|
@ -138,12 +138,13 @@ function confirm_command {
|
|||
}
|
||||
|
||||
function docker_compose_up {
|
||||
if is_mutagen; then
|
||||
if ! is_running_on_jenkins; then
|
||||
start_spinner "Starting mutagen containers..."
|
||||
_canvas_lms_track_with_log mutagen-compose up --no-start web
|
||||
_canvas_lms_track_with_log mutagen-compose run -u root --rm web chown docker:docker /usr/src/app
|
||||
stop_spinner
|
||||
fi
|
||||
|
||||
start_spinner "Starting docker containers..."
|
||||
_canvas_lms_track_with_log $DOCKER_COMMAND up -d web
|
||||
stop_spinner
|
||||
|
@ -199,10 +200,6 @@ function rebuild_docker_images {
|
|||
stop_spinner
|
||||
}
|
||||
|
||||
function is_mutagen {
|
||||
[ -f ".mutagen" ]
|
||||
}
|
||||
|
||||
function is_docker {
|
||||
[[ "${DOCKER:-}" == 'true' ]]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
source script/common/utils/common.sh
|
||||
|
||||
function setup_dinghy_proxy {
|
||||
if [[ "$(docker ps -aq --filter ancestor=codekitchen/dinghy-http-proxy)" == "" ]]; then
|
||||
docker run -d --restart=always \
|
||||
-v /var/run/docker.sock:/tmp/docker.sock:ro \
|
||||
-v ~/.dinghy/certs:/etc/nginx/certs \
|
||||
-p 80:80 -p 443:443 -p 19322:19322/udp \
|
||||
-e DNS_IP=127.0.0.1 -e CONTAINER_NAME=http-proxy \
|
||||
--name http-proxy \
|
||||
codekitchen/dinghy-http-proxy
|
||||
|
||||
sudo mkdir -p /etc/resolver
|
||||
|
||||
echo 'nameserver 127.0.0.1' | sudo tee /etc/resolver/docker > /dev/null
|
||||
echo 'port 19322' | sudo tee -a /etc/resolver/docker > /dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
function dinghy_machine_exists {
|
||||
if installed dinghy; then
|
||||
if ! dinghy status | grep -q 'not created'; then
|
||||
warning_message "dinghy is no longer supported but was found installed!"
|
||||
return 0
|
||||
else
|
||||
warning_message "dinghy found installed but no machine created.\nYou should probably uninstall dinghy to avoid conflicts in the future."
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 1
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
#!/bin/bash
|
||||
source script/common/utils/common.sh
|
||||
|
||||
# Defaults
|
||||
DINGHY_MEMORY='8192'
|
||||
DINGHY_CPUS='4'
|
||||
DINGHY_DISK='150'
|
||||
DINGHY_DEPRECATION_MESSAGE="WARNING: Dinghy is currently deprecated, we suggest to use mutagen instead.
|
||||
For further information check the confluence page: https://instructure.atlassian.net/wiki/spaces/CE/pages/4334256157/Canvas+LMS+docker+dev+Installation+Update"
|
||||
|
||||
function create_dinghy_vm {
|
||||
warning_message $DINGHY_DEPRECATION_MESSAGE
|
||||
if ! dinghy status | grep -q 'not created'; then
|
||||
# make sure DOCKER_MACHINE_NAME is set
|
||||
eval "$(dinghy env)"
|
||||
existing_memory="$(docker-machine inspect --format "{{.Driver.Memory}}" "${DOCKER_MACHINE_NAME}")"
|
||||
if [[ "$existing_memory" -lt "$DINGHY_MEMORY" ]]; then
|
||||
echo "
|
||||
Canvas requires at least 8GB of memory dedicated to the VM. Please recreate
|
||||
your VM with a memory value of at least ${DINGHY_MEMORY}. For Example:
|
||||
|
||||
$ dinghy create --memory ${DINGHY_MEMORY}"
|
||||
exit 1
|
||||
else
|
||||
message "Using existing dinghy VM..."
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
prompt 'OK to create a dinghy VM? [y/n]' confirm
|
||||
[[ ${confirm:-n} == 'y' ]] || return 1
|
||||
|
||||
if ! installed VBoxManage; then
|
||||
message 'Please install VirtualBox first!'
|
||||
return 1
|
||||
fi
|
||||
|
||||
prompt "How much memory should I allocate to the VM (in MB)? [$DINGHY_MEMORY]" memory
|
||||
prompt "How many CPUs should I allocate to the VM? [$DINGHY_CPUS]" cpus
|
||||
prompt "How big should the VM's disk be (in GB)? [$DINGHY_DISK]" disk
|
||||
|
||||
message "OK let's do this."
|
||||
message "Creating dinghy machine..."
|
||||
_canvas_lms_track_with_log dinghy create \
|
||||
--provider=virtualbox \
|
||||
--memory "${memory:-$DINGHY_MEMORY}" \
|
||||
--cpus "${cpus:-$DINGHY_CPUS}" \
|
||||
--disk "${disk:-$DINGHY_DISK}000"
|
||||
}
|
||||
|
||||
function start_dinghy_vm {
|
||||
if dinghy status | grep -q 'stopped'; then
|
||||
message "Starting dinghy VM..."
|
||||
_canvas_lms_track_with_log dinghy up
|
||||
else
|
||||
message 'Looks like the dinghy VM is already running. Moving on...'
|
||||
fi
|
||||
eval "$(dinghy env)"
|
||||
}
|
||||
|
||||
function setup_dinghy_proxy {
|
||||
if [[ "$(docker ps -aq --filter ancestor=codekitchen/dinghy-http-proxy)" == "" ]]; then
|
||||
docker run -d --restart=always \
|
||||
-v /var/run/docker.sock:/tmp/docker.sock:ro \
|
||||
-v ~/.dinghy/certs:/etc/nginx/certs \
|
||||
-p 80:80 -p 443:443 -p 19322:19322/udp \
|
||||
-e DNS_IP=127.0.0.1 -e CONTAINER_NAME=http-proxy \
|
||||
--name http-proxy \
|
||||
codekitchen/dinghy-http-proxy
|
||||
|
||||
sudo mkdir -p /etc/resolver
|
||||
|
||||
echo 'nameserver 127.0.0.1' | sudo tee /etc/resolver/docker > /dev/null
|
||||
echo 'port 19322' | sudo tee -a /etc/resolver/docker > /dev/null
|
||||
fi
|
||||
}
|
|
@ -88,14 +88,6 @@ function print_missing_dependencies {
|
|||
function display_next_steps {
|
||||
message "You're good to go! Next steps:"
|
||||
|
||||
# shellcheck disable=SC2016
|
||||
[[ $OS == 'Darwin' ]] && (! is_mutagen) && echo '
|
||||
First, run:
|
||||
|
||||
eval "$(dinghy env)"
|
||||
|
||||
This will set up environment variables for docker to work with the dinghy VM.'
|
||||
|
||||
[[ $OS == 'Linux' ]] && echo '
|
||||
I have added your user to the docker group so you can run docker commands
|
||||
without sudo. Note that this has security implications:
|
||||
|
@ -120,7 +112,7 @@ function display_next_steps {
|
|||
echo ':docker-compose/selenium.override.yml' >> .env
|
||||
|
||||
build the selenium container
|
||||
${DOCKER_COMMAND} build selenium-hub
|
||||
${DOCKER_COMMAND} up -d selenium-hub
|
||||
|
||||
run selenium
|
||||
${DOCKER_COMMAND} run --rm web bundle exec rspec spec/selenium
|
||||
|
|
|
@ -5,10 +5,13 @@ source script/common/canvas/build_helpers.sh
|
|||
|
||||
trap 'trap_result' ERR EXIT
|
||||
trap "printf '\nTerminated\n' && exit 130" SIGINT
|
||||
|
||||
LOG="$(pwd)/log/docker_dev_setup.log"
|
||||
SCRIPT_NAME="$0 $@"
|
||||
OS="$(uname)"
|
||||
DOCKER='true'
|
||||
DOCKER_COMMAND="mutagen-compose"
|
||||
CANVAS_SKIP_DOCKER_USERMOD='true'
|
||||
|
||||
_canvas_lms_opt_in_telemetry "$SCRIPT_NAME" "$LOG"
|
||||
|
||||
|
@ -17,43 +20,13 @@ if [[ "$USER" == 'root' ]]; then
|
|||
echo "I'll ask for your sudo password if I need it."
|
||||
exit 1
|
||||
fi
|
||||
# remove hidden file if already exists
|
||||
rm .mutagen &> /dev/null || true
|
||||
|
||||
usage () {
|
||||
echo "usage:"
|
||||
printf " --mutagen\t\t\t\tUse Mutagen with Docker to setup development environment.\n"
|
||||
printf " -h|--help\t\t\t\tDisplay usage\n\n"
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "$*" 1>&2
|
||||
usage
|
||||
exit 1
|
||||
}
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
-h|-\?|--help)
|
||||
usage # Display a usage synopsis.
|
||||
exit
|
||||
;;
|
||||
--mutagen)
|
||||
touch .mutagen
|
||||
DOCKER_COMMAND="mutagen-compose"
|
||||
CANVAS_SKIP_DOCKER_USERMOD='true'
|
||||
;;
|
||||
?*)
|
||||
die 'ERROR: Unknown option: ' "$1" >&2
|
||||
;;
|
||||
*)
|
||||
break
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
print_canvas_intro
|
||||
|
||||
if [[ $OS == 'Darwin' ]]; then
|
||||
source script/common/utils/dinghy_proxy_setup.sh
|
||||
dinghy_machine_exists && exit 1
|
||||
fi
|
||||
|
||||
create_log_file
|
||||
init_log_file "Docker Dev Setup"
|
||||
|
|
|
@ -4,13 +4,14 @@ set -e
|
|||
source script/common/utils/common.sh
|
||||
source script/common/canvas/build_helpers.sh
|
||||
|
||||
LOG="$(pwd)/log/docker_dev_update.log"
|
||||
DOCKER='true'
|
||||
SCRIPT_NAME=$0
|
||||
|
||||
trap trap_result EXIT
|
||||
trap "printf '\nTerminated\n' && exit 130" SIGINT
|
||||
|
||||
LOG="$(pwd)/log/docker_dev_update.log"
|
||||
DOCKER='true'
|
||||
OS="$(uname)"
|
||||
SCRIPT_NAME=$0
|
||||
|
||||
usage () {
|
||||
echo "usage:"
|
||||
printf " --update-code [skip-canvas] [skip-plugins [<plugin1>,...]\tRebase canvas-lms and plugins. Optional skip-canvas and\n"
|
||||
|
@ -25,11 +26,9 @@ die () {
|
|||
}
|
||||
|
||||
_canvas_lms_opt_in_telemetry "$SCRIPT_NAME" "$LOG"
|
||||
if is_mutagen; then
|
||||
DOCKER_COMMAND="mutagen-compose"
|
||||
CANVAS_SKIP_DOCKER_USERMOD='true'
|
||||
print_mutagen_intro
|
||||
fi
|
||||
DOCKER_COMMAND="mutagen-compose"
|
||||
CANVAS_SKIP_DOCKER_USERMOD='true'
|
||||
print_mutagen_intro
|
||||
|
||||
while :; do
|
||||
case $1 in
|
||||
|
@ -77,11 +76,15 @@ done
|
|||
# check for docker daemon running before anything else
|
||||
docker_running || exit 1
|
||||
|
||||
if [[ $OS == 'Darwin' ]]; then
|
||||
source script/common/utils/dinghy_proxy_setup.sh
|
||||
dinghy_machine_exists && exit 1
|
||||
fi
|
||||
|
||||
if [ -f "docker-compose.override.yml" ]; then
|
||||
echo "docker-compose.override.yml exists, skipping copy of default configuration"
|
||||
else
|
||||
echo "Copying default configuration from config/docker-compose.override.yml.example to docker-compose.override.yml"
|
||||
cp config/docker-compose.override.yml.example docker-compose.override.yml
|
||||
copy_mutagen_override
|
||||
fi
|
||||
|
||||
if [[ -n "$UPDATE_CODE" ]] || [[ -n "$REBUILD_DOCKER" ]] && [[ "$(docker-compose top | wc -l)" -gt 0 ]]; then
|
||||
|
|
Loading…
Reference in New Issue