Skip to content
This repository was archived by the owner on Feb 2, 2022. It is now read-only.

Commit e557926

Browse files
author
Tyler Jewell
committed
update to support che-server
1 parent 2736694 commit e557926

3 files changed

Lines changed: 47 additions & 57 deletions

File tree

che-launcher/launcher.sh

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -59,16 +59,25 @@ init_global_variables() {
5959
DEFAULT_CHE_RESTART_POLICY="no"
6060
DEFAULT_CHE_USER="root"
6161
DEFAULT_CHE_LOG_LEVEL="info"
62-
DEFAULT_CHE_DATA_FOLDER="/home/user/che"
6362
DEFAULT_CHE_DEBUG_SERVER="false"
6463
DEFAULT_CHE_DEBUG_SERVER_PORT="8000"
6564
DEFAULT_CHE_DEBUG_SERVER_SUSPEND="false"
6665
DEFAULT_CHE_DOCKER_MACHINE_HOST_EXTERNAL=$(get_docker_external_hostname)
6766

6867
# Clean eventual user provided paths
69-
CHE_CONF_FOLDER=${CHE_CONF_FOLDER:+$(get_converted_and_clean_path "${CHE_CONF_FOLDER}")}
70-
CHE_DATA_FOLDER=${CHE_DATA_FOLDER:+$(get_converted_and_clean_path "${CHE_DATA_FOLDER}")}
71-
CHE_LOCAL_BINARY=${CHE_LOCAL_BINARY:+$(get_converted_and_clean_path "${CHE_LOCAL_BINARY}")}
68+
CHE_CONF=${CHE_CONF:+$(get_converted_and_clean_path "${CHE_CONF}")}
69+
CHE_CONF_LOCATION="${CHE_CONF}":"${CHE_CONF}:Z"
70+
# "<-- Added comment with quote to fix broken syntax highlighting
71+
72+
DEFAULT_CHE_DATA_FOLDER="/home/user/che"
73+
CHE_DATA=${CHE_DATA:+$(get_converted_and_clean_path "${CHE_DATA}")}
74+
CHE_DATA=${CHE_DATA:-${DEFAULT_CHE_DATA_FOLDER}}
75+
CHE_DATA_LOCATION="${CHE_DATA}":"/data:Z"
76+
# "<-- Added comment with quote to fix broken syntax highlighting
77+
78+
CHE_ASSEMBLY=${CHE_ASSEMBLY:+$(get_converted_and_clean_path "${CHE_ASSEMBLY}")}
79+
CHE_ASSEMBLY_LOCATION="${CHE_ASSEMBLY}":"${CHE_ASSEMBLY}:Z"
80+
# "<-- Added comment with quote to fix broken syntax highlighting
7281

7382
CHE_PRODUCT_NAME=${CHE_PRODUCT_NAME:-${DEFAULT_CHE_PRODUCT_NAME}}
7483
CHE_MINI_PRODUCT_NAME=${CHE_MINI_PRODUCT_NAME:-${DEFAULT_CHE_MINI_PRODUCT_NAME}}
@@ -81,27 +90,11 @@ init_global_variables() {
8190
CHE_USER=${CHE_USER:-${DEFAULT_CHE_USER}}
8291
CHE_HOST_IP=${CHE_HOST_IP:-${DEFAULT_DOCKER_HOST_IP}}
8392
CHE_LOG_LEVEL=${CHE_LOG_LEVEL:-${DEFAULT_CHE_LOG_LEVEL}}
84-
CHE_DATA_FOLDER=${CHE_DATA_FOLDER:-${DEFAULT_CHE_DATA_FOLDER}}
8593
CHE_DEBUG_SERVER=${CHE_DEBUG_SERVER:-${DEFAULT_CHE_DEBUG_SERVER}}
8694
CHE_DEBUG_SERVER_PORT=${CHE_DEBUG_SERVER_PORT:-${DEFAULT_CHE_DEBUG_SERVER_PORT}}
8795
CHE_DEBUG_SERVER_SUSPEND=${CHE_DEBUG_SERVER_SUSPEND:-${DEFAULT_CHE_DEBUG_SERVER_SUSPEND}}
8896
CHE_DOCKER_MACHINE_HOST_EXTERNAL=${CHE_DOCKER_MACHINE_HOST_EXTERNAL:-${DEFAULT_CHE_DOCKER_MACHINE_HOST_EXTERNAL}}
8997

90-
CHE_CONF_LOCATION="${CHE_CONF_FOLDER}":"/conf:Z"
91-
CHE_STORAGE_LOCATION="${CHE_DATA_FOLDER}/storage":"/home/user/che/storage:Z"
92-
CHE_WORKSPACE_LOCATION="${CHE_DATA_FOLDER}/workspaces":"/home/user/che/workspaces:Z"
93-
CHE_LOCAL_BINARY_LOCATION="${CHE_LOCAL_BINARY}":"/home/user/che:Z"
94-
95-
if [ "${CHE_LOG_LEVEL}" = "debug" ]; then
96-
CHE_DEBUG_OPTION="--log_level:debug"
97-
else
98-
CHE_DEBUG_OPTION=""
99-
fi
100-
101-
if [ "${CHE_DEBUG_SERVER}" = "true" ]; then
102-
CHE_DEBUG_OPTION="${CHE_DEBUG_OPTION} --debug"
103-
fi
104-
10598
USAGE="
10699
Usage:
107100
docker run --rm -t -v /var/run/docker.sock:/var/run/docker.sock ${LAUNCHER_IMAGE_NAME} [COMMAND]

che-launcher/launcher_cmds.sh

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,7 @@ start_che_server() {
2828
fi
2929

3030
info "${CHE_PRODUCT_NAME}: Starting container..."
31-
docker_run_with_debug "${CHE_SERVER_IMAGE_NAME}":"${CHE_VERSION}" \
32-
--remote:"${CHE_HOST_IP}" \
33-
-s:uid \
34-
-s:client \
35-
${CHE_DEBUG_OPTION} \
36-
run > /dev/null
31+
docker_run_with_debug "${CHE_SERVER_IMAGE_NAME}":"${CHE_VERSION}" > /dev/null
3732

3833
CURRENT_CHE_SERVER_CONTAINER_ID=$(get_che_server_container_id ${CHE_SERVER_CONTAINER_NAME})
3934
wait_until_container_is_running 10 ${CURRENT_CHE_SERVER_CONTAINER_ID}
@@ -70,7 +65,7 @@ stop_che_server() {
7065
info "${CHE_PRODUCT_NAME}: Container $CURRENT_CHE_SERVER_CONTAINER_ID is not running. Nothing to do."
7166
else
7267
info "${CHE_PRODUCT_NAME}: Stopping server..."
73-
docker exec ${CURRENT_CHE_SERVER_CONTAINER_ID} /home/user/che/bin/che.sh -c -s:uid stop > /dev/null
68+
docker stop ${CURRENT_CHE_SERVER_CONTAINER_ID} > /dev/null
7469
wait_until_container_is_stopped 60 ${CURRENT_CHE_SERVER_CONTAINER_ID}
7570
if che_container_is_running ${CURRENT_CHE_SERVER_CONTAINER_ID}; then
7671
error_exit "${CHE_PRODUCT_NAME}: Timeout waiting for the ${CHE_PRODUCT_NAME} container to stop."
@@ -123,8 +118,7 @@ print_debug_info() {
123118
IFS=$'\n'
124119
for CHE_SERVER_CONTAINER_ID in $CURRENT_CHE_INSTANCES; do
125120
info ""
126-
info "--------- CHE INSTANCE INFO ----------"
127-
info "CHE SERVER CONTAINER ID = $CHE_SERVER_CONTAINER_ID"
121+
info "--------- CHE INSTANCE: $CHE_SERVER_CONTAINER_ID"
128122
CURRENT_CHE_SERVER_CONTAINER_NAME=$(docker inspect --format='{{.Name}}' ${CHE_SERVER_CONTAINER_ID} | cut -f2 -d"/")
129123
info "CHE SERVER CONTAINER NANE = $CURRENT_CHE_SERVER_CONTAINER_NAME"
130124
info "CHE CONTAINER EXISTS = $(che_container_exist $CHE_SERVER_CONTAINER_ID && echo "YES" || echo "NO")"
@@ -149,18 +143,18 @@ print_debug_info() {
149143
info ""
150144
info ""
151145
info "---- CURRENT COMMAND LINE OPTIONS ---"
152-
info "CHE_PORT = ${CHE_PORT}"
153146
info "CHE_VERSION = ${CHE_VERSION}"
147+
info "CHE_DATA = ${CHE_DATA}"
148+
info "CHE_CONF = ${CHE_CONF:-not set}"
149+
info "CHE_ASSEMBLY = ${CHE_ASSEMBLY:-not set}"
150+
info "CHE_PORT = ${CHE_PORT}"
151+
info "CHE_HOST_IP = ${CHE_HOST_IP}"
154152
info "CHE_RESTART_POLICY = ${CHE_RESTART_POLICY}"
155153
info "CHE_USER = ${CHE_USER}"
156-
info "CHE_HOST_IP = ${CHE_HOST_IP}"
157154
info "CHE_LOG_LEVEL = ${CHE_LOG_LEVEL}"
158155
info "CHE_DEBUG_SERVER = ${CHE_DEBUG_SERVER}"
159156
info "CHE_DEBUG_SERVER_PORT = ${CHE_DEBUG_SERVER_PORT}"
160157
info "CHE_HOSTNAME = ${CHE_HOSTNAME}"
161-
info "CHE_DATA_FOLDER = ${CHE_DATA_FOLDER}"
162-
info "CHE_CONF_FOLDER = ${CHE_CONF_FOLDER:-not set}"
163-
info "CHE_LOCAL_BINARY = ${CHE_LOCAL_BINARY:-not set}"
164158
info "CHE_SERVER_CONTAINER_NAME = ${CHE_SERVER_CONTAINER_NAME}"
165159
info "CHE_SERVER_IMAGE_NAME = ${CHE_SERVER_IMAGE_NAME}"
166160
}

che-launcher/launcher_funcs.sh

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -107,40 +107,40 @@ docker_run() {
107107
ENV_FILE=$(get_list_of_che_system_environment_variables)
108108
docker run -d --name "${CHE_SERVER_CONTAINER_NAME}" \
109109
-v /var/run/docker.sock:/var/run/docker.sock:Z \
110-
-v /home/user/che/lib:/home/user/che/lib-copy:Z \
110+
-v "$CHE_DATA_LOCATION" \
111111
-p "${CHE_PORT}":8080 \
112112
--restart="${CHE_RESTART_POLICY}" \
113113
--user="${CHE_USER}" \
114-
--env-file=$ENV_FILE \
115-
-v "$CHE_STORAGE_LOCATION" "$@"
114+
-e "CHE_LOG_LEVEL=${CHE_LOG_LEVEL}" \
115+
-e "CHE_IP=$CHE_HOST_IP" \
116+
--env-file=$ENV_FILE "$@"
116117

117118
rm -rf $ENV_FILE > /dev/null
118119
}
119120

120-
docker_run_with_storage() {
121+
docker_run_if_in_vm() {
122+
# If the container will run inside of a VM, additional parameters must be set.
123+
# Setting CHE_IN_VM=true will have the che-server container set the values.
121124
if is_docker_for_mac || is_docker_for_windows || is_boot2docker; then
122-
# If on docker for mac or windows, then we have to use these special parameters
123-
docker_run -e "CHE_WORKSPACE_STORAGE=$CHE_DATA_FOLDER/workspaces" \
124-
-e "CHE_WORKSPACE_STORAGE_CREATE_FOLDERS=false" "$@"
125+
docker_run -e "CHE_IN_VM=true" "$@"
125126
else
126-
# Otherwise, mount the full directory
127-
docker_run -v "$CHE_WORKSPACE_LOCATION" "$@"
127+
docker_run "$@"
128128
fi
129129
}
130130

131-
docker_run_with_local_binary() {
132-
if has_local_binary_path; then
133-
docker_run_with_storage -v "$CHE_LOCAL_BINARY_LOCATION" "$@"
131+
docker_run_with_assembly() {
132+
if has_assembly; then
133+
docker_run_if_in_vm -v "$CHE_ASSEMBLY_LOCATION" -e "CHE_ASSEMBLY=${CHE_ASSEMBLY}" "$@"
134134
else
135-
docker_run_with_storage "$@"
135+
docker_run_if_in_vm "$@"
136136
fi
137137
}
138138

139139
docker_run_with_conf() {
140140
if has_che_conf_path; then
141-
docker_run_with_local_binary -v "$CHE_CONF_LOCATION" -e "CHE_LOCAL_CONF_DIR=/conf" "$@"
141+
docker_run_with_assembly -v "$CHE_CONF_LOCATION" -e "CHE_LOCAL_CONF_DIR=${CHE_CONF}" "$@"
142142
else
143-
docker_run_with_local_binary "$@"
143+
docker_run_with_assembly "$@"
144144
fi
145145
}
146146

@@ -154,9 +154,12 @@ docker_run_with_external_hostname() {
154154

155155
docker_run_with_debug() {
156156
if has_debug && has_debug_suspend; then
157-
docker_run_with_external_hostname -p "${CHE_DEBUG_SERVER_PORT}":8000 -e "JPDA_SUSPEND=y" "$@"
157+
docker_run_with_external_hostname -p "${CHE_DEBUG_SERVER_PORT}":8000 \
158+
-e "CHE_DEBUG_SERVER=true" \
159+
-e "JPDA_SUSPEND=y" "$@"
158160
elif has_debug; then
159-
docker_run_with_external_hostname -p "${CHE_DEBUG_SERVER_PORT}":8000 "$@"
161+
docker_run_with_external_hostname -p "${CHE_DEBUG_SERVER_PORT}":8000 \
162+
-e "CHE_DEBUG_SERVER=true" "$@"
160163
else
161164
docker_run_with_external_hostname "$@"
162165
fi
@@ -179,15 +182,15 @@ has_debug() {
179182
}
180183

181184
has_che_conf_path() {
182-
if [ "${CHE_CONF_FOLDER}" = "" ]; then
185+
if [ "${CHE_CONF}" = "" ]; then
183186
return 1
184187
else
185188
return 0
186189
fi
187190
}
188191

189-
has_local_binary_path() {
190-
if [ "${CHE_LOCAL_BINARY}" = "" ]; then
192+
has_assembly() {
193+
if [ "${CHE_ASSEMBLY}" = "" ]; then
191194
return 1
192195
else
193196
return 0
@@ -354,13 +357,13 @@ get_container_debug() {
354357
}
355358

356359
get_che_container_host_ip_from_container() {
357-
BINDS=$(docker inspect --format="{{.Config.Cmd}}" "${1}" | cut -d '[' -f 2 | cut -d ']' -f 1)
360+
BINDS=$(docker inspect --format="{{.Config.Env}}" "${1}" | cut -d '[' -f 2 | cut -d ']' -f 1)
358361

359362
IFS=$' '
360363
for SINGLE_BIND in $BINDS; do
361364
case $SINGLE_BIND in
362-
*--remote*)
363-
echo $SINGLE_BIND | cut -f2 -d":"
365+
*CHE_IP*)
366+
echo $SINGLE_BIND | cut -f2 -d=
364367
;;
365368
*)
366369
;;

0 commit comments

Comments
 (0)