blob: 97ee284649a1df1e2162094979a34582ea37efe4 [file] [log] [blame]
<#--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
docker run -d \
--memory=1024m \
--name ${docker_container_name} \
--env SCENARIO_NAME=${scenario_name} \
--env SCENARIO_VERSION=${scenario_version} \
--env SCENARIO_SUPPORT_FRAMEWORK=${scenario_name} \
<#if start_script??>
--env SCENARIO_START_SCRIPT=${start_script} \
</#if>
--env SCENARIO_ENTRY_SERVICE=${entry_service} \
--env SCENARIO_HEALTH_CHECK_URL=${health_check} \
--env SCENARIO_EXTEND_ENTRY_HEADER=${extend_entry_header} \
<#if catalina_opts??>
--env CATALINA_OPTS=${catalina_opts} \
</#if>
<#if debug_mode??>
--env DEBUG_MODE=${debug_mode} \
</#if>
<#if environments??>
<#list environments as env>
--env ${env} \
</#list>
</#if>
-v ${agent_home}:/usr/local/skywalking/scenario/agent \
-v ${scenario_home}:/usr/local/skywalking/scenario \
-v ${jacoco_home}:/jacoco \
${docker_image_name}:${docker_image_version}
sleep 3
container_name=`docker ps -aqf "name=${docker_container_name}"`
<#noparse>
if [[ -z ${container_name} ]]; then
echo "docker startup failure!" >&2
echo "=== docker ps -a ===" >&2
docker ps -a >&2 || true
# Create container.log with diagnostic info
mkdir -p ${SCENARIO_HOME}/logs
{
echo "=== CONTAINER STARTUP FAILURE ==="
echo "Container not found by docker ps"
echo "=== docker ps -a ==="
docker ps -a 2>&1 || true
} >${SCENARIO_HOME}/logs/container.log
status=1
else
status=$(docker wait ${container_name})
[[ $status -ne 0 ]] && docker logs ${container_name} >&2
# Recreate logs dir in case the container removed it via volume mount
mkdir -p ${SCENARIO_HOME}/logs
docker logs ${container_name} >${SCENARIO_HOME}/logs/container.log
docker container rm -f $container_name
fi
</#noparse>