diff --git a/skywalking-alarm/docker/Dockerfile b/skywalking-alarm/docker/Dockerfile
index e69de29bb..a86110a1e 100644
--- a/skywalking-alarm/docker/Dockerfile
+++ b/skywalking-alarm/docker/Dockerfile
@@ -0,0 +1,24 @@
+FROM openjdk:8u111-jdk
+
+ENV ALARM_COORDINATE_ZK_ADDRESS=localhost:2181 \
+ MYSQL_SERVER=localhost:3306 \
+ MYSQL_USER=root \
+ MYSQL_PASSWORD=root \
+ REDIS_SERVER=localhost:6379 \
+ ALARM_MAIL_HOST=smtp.mail.com \
+ MAIL_SSL_ENABLE=true \
+ MAIL_USER_NAME=skywalking \
+ MAIL_PASSWORD=skywalking \
+ MAIL_SENDER_MAIL=skywalking@mail.com \
+ WEBUI_DEPLOY_ADDRESS=localhost:8080 \
+ WEBUI_CONTEXT_NAME=skywalking
+
+
+ADD skywalking-alarm.tar /usr/local/
+COPY config.properties /usr/local/skywalking-alarm/config
+COPY docker-entrypoint.sh /
+
+RUN chmod +x /docker-entrypoint.sh
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["/usr/local/skywalking-alarm/bin/sw-alarm-server.sh"]
diff --git a/skywalking-alarm/docker/config.properties b/skywalking-alarm/docker/config.properties
new file mode 100644
index 000000000..04a23752d
--- /dev/null
+++ b/skywalking-alarm/docker/config.properties
@@ -0,0 +1,81 @@
+#告警处理线程数
+server.process_thread_size=2
+#守护线程等待周期
+server.daemon_thread_wait_interval=50000
+#告警规则生效周期
+server.alarm_rule_activity_interval=3600000
+
+#处理线程等待周期
+processthread.thread_wait_interval=5000
+
+#zookeeper连接地址
+zkpath.connect_str={ALARM_COORDINATE_ZK_ADDRESS}
+#zookeeper连接超时时间(单位:毫秒)
+zkpath.connect_timeout=1000
+#zookeeper重试次数
+zkpath.retry_times=3
+#zookeeper重试超时时间(单位:毫秒)
+zkpath.retry_timeout=1000
+#告警规则的path前缀
+zkpath.node_prefix=/skywalking
+#告警服务的处理线程注册地址
+zkpath.register_server_path=/skywalking/alarm-server/register-servers
+#告警服务的协调器的竞争锁地址
+zkpath.coordinator_path=/skywalking/alarm-server/coordinator/lock
+
+#尝试成为协调器的竞争锁周期(单位:秒)
+coordinator.retry_get_coordinator_lock_interval=5
+#尝试成为协调器的等待时间(单位:毫秒)
+coordinator.retry_become_coordinator_wait_time=10000
+#检查是否需要重新分配的周期(单位:毫秒)
+coordinator.check_redistribute_interval=5000
+#检查所有处理线程的周期(单位:毫秒)
+coordinator.check_all_process_thread_interval=500
+
+#数据库驱动类
+db.driver_class=com.mysql.jdbc.Driver
+#数据库连接地址
+db.url=jdbc:mysql://{MYSQL_SERVER}/test
+#数据库用户名
+db.user_name={MYSQL_USER}
+#数据库密码
+db.password={MYSQL_PASSWORD}
+#数据库连接最大空闲数
+db.max_idle=1
+#数据库最大连接数
+db.max_pool_size=20
+#数据连接超时时间
+db.connect_timeout=10000
+
+#告警信息存在的redis服务器地址
+alarm.redis_server={REDIS_SERVER}
+#redis的最大空闲连接数
+alarm.redis_max_idle=20
+#redis的最小空闲连接数
+alarm.redis_min_idle=1
+#redis最大连接数
+alarm.redis_max_total=50
+#是否关闭告警发送
+alarm.alarm_off_flag=false
+
+alarm.checker.turn_on_exception_checker=true
+#告警检查器:执行时间超时告警检查
+alarm.checker.turn_on_execute_time_checker=true
+
+#邮件发送配置id
+mailsenderinfo.mail_host={ALARM_MAIL_HOST}
+mailsenderinfo.transport_protocol=smtp
+mailsenderinfo.smtp_auth=true
+mailsenderinfo.smtp_start_ssl_enable={MAIL_SSL_ENABLE}
+mailsenderinfo.username={MAIL_USER_NAME}
+mailsenderinfo.password={MAIL_PASSWORD}
+mailsenderinfo.sender={MAIL_SENDER_MAIL}
+mailsenderinfo.ssl_enable={MAIL_SSL_ENABLE}
+#邮件模板配置id
+templateinfo.portal_url=http://{WEBUI_DEPLOY_ADDRESS}/{WEBUI_CONTEXT_NAME}
+
+#尝试获取轮询锁的周期(单位:毫秒)
+inspectthread.retry_get_inspect_lock_interval=10000
+#尝试检查用户列表的周期(单位:毫秒)
+inspectthread.check_user_list_interval=300000
+
diff --git a/skywalking-alarm/docker/docker-entrypoint.sh b/skywalking-alarm/docker/docker-entrypoint.sh
index e377e6a4c..1cd1094aa 100644
--- a/skywalking-alarm/docker/docker-entrypoint.sh
+++ b/skywalking-alarm/docker/docker-entrypoint.sh
@@ -1,5 +1,40 @@
#!/bin/bash
+echo "replace ALARM_COORDINATE_ZK_ADDRESS with $ALARM_COORDINATE_ZK_ADDRESS"
+eval sed -i -e 's/\{ALARM_COORDINATE_ZK_ADDRESS\}/$ALARM_COORDINATE_ZK_ADDRESS/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace MYSQL_SERVER with $MYSQL_SERVER"
+eval sed -i -e 's/\{MYSQL_SERVER\}/$MYSQL_SERVER/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace MYSQL_USER with $MYSQL_USER"
+eval sed -i -e 's/\{MYSQL_USER\}/$MYSQL_USER/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace MYSQL_PASSWORD with $MYSQL_PASSWORD"
+eval sed -i -e 's/\{MYSQL_PASSWORD\}/$MYSQL_PASSWORD/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace REDIS_SERVER with $REDIS_SERVER"
+eval sed -i -e 's/\{REDIS_SERVER\}/$REDIS_SERVER/' /usr/local/skywalking-alarm/config/config.properties
-exec "$@"
\ No newline at end of file
+echo "replcae ALARM_MAIL_HOST with $ALARM_MAIL_HOST"
+eval sed -i -e 's/\{ALARM_MAIL_HOST\}/$ALARM_MAIL_HOST/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace MAIL_SSL_ENABLE with $MAIL_SSL_ENABLE"
+eval sed -i -e 's/\{MAIL_SSL_ENABLE\}/$MAIL_SSL_ENABLE/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace MAIL_USER_NAME with $MAIL_USER_NAME"
+eval sed -i -e 's/\{MAIL_USER_NAME\}/$MAIL_USER_NAME/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace MAIL_PASSWORD with $MAIL_PASSWORD"
+eval sed -i -e 's/\{MAIL_PASSWORD\}/$MAIL_PASSWORD/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace MAIL_SENDER_MAIL with $MAIL_SENDER_MAIL"
+eval sed -i -e 's/\{MAIL_SENDER_MAIL\}/$MAIL_SENDER_MAIL/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace WEBUI_DEPLOY_ADDRESS with $WEBUI_DEPLOY_ADDRESS"
+eval sed -i -e 's/\{WEBUI_DEPLOY_ADDRESS\}/$WEBUI_DEPLOY_ADDRESS/' /usr/local/skywalking-alarm/config/config.properties
+
+echo "replace WEBUI_CONTEXT_NAME with $WEBUI_CONTEXT_NAME"
+eval sed -i -e 's/\{WEBUI_CONTEXT_NAME\}/$WEBUI_CONTEXT_NAME/' /usr/local/skywalking-alarm/config/config.properties
+
+exec "$@"
diff --git a/skywalking-alarm/pom.xml b/skywalking-alarm/pom.xml
index 916d589eb..c8cb9c2b0 100644
--- a/skywalking-alarm/pom.xml
+++ b/skywalking-alarm/pom.xml
@@ -106,7 +106,19 @@
docker-maven-plugin
${docker.plugin.version}
- true
+ false
+ ${project.basedir}/docker
+ skywalking/skywalking-alarm
+
+ ${project.version}
+
+
+
+ /
+ ${project.build.directory}
+ ${build.finalName}.tar
+
+
diff --git a/skywalking-alarm/src/main/assembly/assembly.xml b/skywalking-alarm/src/main/assembly/assembly.xml
index bd212b5c4..0b9652595 100644
--- a/skywalking-alarm/src/main/assembly/assembly.xml
+++ b/skywalking-alarm/src/main/assembly/assembly.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- zip
+ tar
diff --git a/skywalking-storage-center/skywalking-routing/docker/Dockerfile b/skywalking-storage-center/skywalking-routing/docker/Dockerfile
index e69de29bb..b2610f3d1 100644
--- a/skywalking-storage-center/skywalking-routing/docker/Dockerfile
+++ b/skywalking-storage-center/skywalking-routing/docker/Dockerfile
@@ -0,0 +1,13 @@
+FROM openjdk:8u111-jdk
+
+ENV SERVER_PORT=23000 \
+ REGISTRY_CENTER_URL=localhost:2181 \
+ ALARM_REDIS_SERVER=localhost:6379
+
+ADD skywalking-routing.tar /usr/local/
+COPY config.properties /usr/local/skywalking-routing/config/
+COPY docker-entrypoint.sh /
+RUN chmod +x /docker-entrypoint.sh
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["/usr/local/skywalking-routing/bin/routingServer.sh"]
diff --git a/skywalking-storage-center/skywalking-routing/docker/config.properties b/skywalking-storage-center/skywalking-routing/docker/config.properties
new file mode 100644
index 000000000..3685a10b0
--- /dev/null
+++ b/skywalking-storage-center/skywalking-routing/docker/config.properties
@@ -0,0 +1,38 @@
+# the port which routing server listening
+server.port={SERVER_PORT}
+#
+#search.check_cycle=100
+#
+#search.timeout=3000
+# the type of registry center (default: zookeeper)
+#registrycenter.type=zookeeper
+# the connect url that registry center
+registrycenter.connect_url={REGISTRY_CENTER_URL}
+# auth schema that registry center
+#registrycenter.auth_schema=
+# the auth info that registry center
+#registrycenter.auth_info=
+#
+#registrycenter.path_prefix=/skywalking/routing_list/
+#
+#storagenode.subscribe_path=/skywalking/storage_list
+#
+#disruptor.buffer_size=524288
+#
+#disruptor.flush_size=100
+# the connect url for alarm
+alarm.redis_server={ALARM_REDIS_SERVER}
+#
+#alarm.alarm_off_flag=true
+#
+#alarm.alarm_exception_stack_length=300
+#
+#alarm.alarm_redis_inspector_interval=100
+#
+#alarm.redis_max_idle=10
+#
+#alarm.redis_min_idle=1
+#
+#alarm.redis_max_total=30
+#
+#alarm.alarm_expire_seconds=3600000
\ No newline at end of file
diff --git a/skywalking-storage-center/skywalking-routing/docker/docker-entrypoint.sh b/skywalking-storage-center/skywalking-routing/docker/docker-entrypoint.sh
index e377e6a4c..7428c251e 100644
--- a/skywalking-storage-center/skywalking-routing/docker/docker-entrypoint.sh
+++ b/skywalking-storage-center/skywalking-routing/docker/docker-entrypoint.sh
@@ -1,5 +1,12 @@
#!/bin/bash
+echo "replace SERVER_PORT with $SERVER_PORT"
+eval sed -i -e 's/\{SERVER_PORT\}/$SERVER_PORT/' /usr/local/skywalking-routing/config/config.properties
+echo "replace REGISTRY_CENTER_URL with $REGISTRY_CENTER_URL"
+eval sed -i -e 's/\{REGISTRY_CENTER_URL\}/$REGISTRY_CENTER_URL/' /usr/local/skywalking-routing/config/config.properties
+
+echo "replace ALARM_REDIS_SERVER whit $ALARM_REDIS_SERVER"
+eval sed -i -e 's/\{ALARM_REDIS_SERVER\}/$ALARM_REDIS_SERVER/' /usr/local/skywalking-routing/config/config.properties
exec "$@"
\ No newline at end of file
diff --git a/skywalking-storage-center/skywalking-routing/pom.xml b/skywalking-storage-center/skywalking-routing/pom.xml
index e15bd5481..21b804042 100644
--- a/skywalking-storage-center/skywalking-routing/pom.xml
+++ b/skywalking-storage-center/skywalking-routing/pom.xml
@@ -58,12 +58,33 @@
- src/main/assembly/assembly.xml
+ src/main/assembly/assembly.xml
+
+
+ com.spotify
+ docker-maven-plugin
+ ${docker.plugin.version}
+
+ false
+ ${project.basedir}/docker
+ skywalking/skywalking-routing
+
+ ${project.version}
+
+
+
+ /
+ ${project.build.directory}
+ ${build.finalName}.tar
+
+
+
+
diff --git a/skywalking-storage-center/skywalking-routing/src/main/assembly/assembly.xml b/skywalking-storage-center/skywalking-routing/src/main/assembly/assembly.xml
index 3ce413a66..aedd831af 100644
--- a/skywalking-storage-center/skywalking-routing/src/main/assembly/assembly.xml
+++ b/skywalking-storage-center/skywalking-routing/src/main/assembly/assembly.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- zip
+ tar
diff --git a/skywalking-storage-center/skywalking-storage/docker/Dockerfile b/skywalking-storage-center/skywalking-storage/docker/Dockerfile
index e69de29bb..c318f068c 100644
--- a/skywalking-storage-center/skywalking-storage/docker/Dockerfile
+++ b/skywalking-storage-center/skywalking-storage/docker/Dockerfile
@@ -0,0 +1,15 @@
+FROM openjdk:8u111-jdk
+
+ENV SERVER_PORT=34000 \
+ REGISTRY_CENTER_URL=localhost:2181
+
+ADD skywalking-storage.tar /usr/local/
+COPY config.properties /usr/local/skywalking-storage/config
+COPY docker-entrypoint.sh /
+
+RUN chmod +x /docker-entrypoint.sh
+
+VOLUME ["/usr/local/skywalking-storage/data/file", "/usr/local/skywalking-storage/data/index/data"]
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+CMD ["/usr/local/skywalking-storage/bin/storageServer.sh"]
diff --git a/skywalking-storage-center/skywalking-storage/docker/config.properties b/skywalking-storage-center/skywalking-storage/docker/config.properties
new file mode 100644
index 000000000..7f5439f4a
--- /dev/null
+++ b/skywalking-storage-center/skywalking-storage/docker/config.properties
@@ -0,0 +1,47 @@
+# the port which storage server listening
+server.port={SERVER_PORT}
+#
+# the size of channel which storage span data
+#dataconsumer.channel_size = 10
+#
+# the buffer size for each channel
+#dataconsumer.buffer_size = 1000
+#
+# the size of data consumer
+#dataconsumer.consumer_size = 5
+#
+# the path that storage data file
+#datafile.path=/data/file
+#
+# the max size of data file (byte)
+#datafile.size=50000000
+#
+# the auth info which registry center
+#registrycenter.auth_info=
+#
+# the auth schema which registry center
+#registrycenter.auth_schema=
+#
+# the registry center connect url (Default: zookeeper)
+registrycenter.connect_url={REGISTRY_CENTER_URL}
+#
+# the prefix of path that each storage node register
+#registrycenter.path_prefix=/skywalking/storage_list/
+#
+# the level1 size of block index engine
+#blockindexengine.l1_cache_size=10
+#
+# the cached size of finder
+#finder.cached_size=10
+#
+# the max pool size of data source that finder operate
+#finder.datasource.max_pool_size=20
+#
+# the min idle of data source that finder operate
+#finder.datasource.min_idle=5
+#
+# the total size of finder
+#indexoperator.finder.total=50
+#
+# the max idel of finder
+#indexoperator.finder.idel=20
diff --git a/skywalking-storage-center/skywalking-storage/docker/docker-entrypoint.sh b/skywalking-storage-center/skywalking-storage/docker/docker-entrypoint.sh
index e377e6a4c..d0645e428 100644
--- a/skywalking-storage-center/skywalking-storage/docker/docker-entrypoint.sh
+++ b/skywalking-storage-center/skywalking-storage/docker/docker-entrypoint.sh
@@ -1,5 +1,9 @@
#!/bin/bash
+echo "replace SERVER_PORT with $SERVER_PORT"
+eval sed -i -e 's/\{SERVER_PORT\}/$SERVER_PORT/' /usr/local/skywalking-storage/config/config.properties
+echo "replace REGISTRY_CENTER_URL with $REGISTRY_CENTER_URL"
+eval sed -i -e 's/\{REGISTRY_CENTER_URL\}/$REGISTRY_CENTER_URL/' /usr/local/skywalking-storage/config/config.properties
exec "$@"
\ No newline at end of file
diff --git a/skywalking-storage-center/skywalking-storage/pom.xml b/skywalking-storage-center/skywalking-storage/pom.xml
index ca26d05fb..ac25084e0 100644
--- a/skywalking-storage-center/skywalking-storage/pom.xml
+++ b/skywalking-storage-center/skywalking-storage/pom.xml
@@ -106,6 +106,27 @@
+
+
+ com.spotify
+ docker-maven-plugin
+ ${docker.plugin.version}
+
+ false
+ ${project.basedir}/docker
+ skywalking/skywalking-storage
+
+ ${project.version}
+
+
+
+ /
+ ${project.build.directory}
+ ${build.finalName}.tar
+
+
+
+
diff --git a/skywalking-storage-center/skywalking-storage/src/main/assembly/assembly.xml b/skywalking-storage-center/skywalking-storage/src/main/assembly/assembly.xml
index 0d8579205..946533e4e 100644
--- a/skywalking-storage-center/skywalking-storage/src/main/assembly/assembly.xml
+++ b/skywalking-storage-center/skywalking-storage/src/main/assembly/assembly.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- zip
+ tar
diff --git a/skywalking-webui/docker/Dockerfile b/skywalking-webui/docker/Dockerfile
index 8db4c5947..f686a0785 100644
--- a/skywalking-webui/docker/Dockerfile
+++ b/skywalking-webui/docker/Dockerfile
@@ -5,7 +5,8 @@ ENV JPDA_ADDRESS="8000" \
MYSQL_URL=localhost:3306 \
MYSQL_USER=root \
MYSQL_PASSWORD=root \
- REGISTRY_CENTER_URL=localhost:2181
+ REGISTRY_CENTER_URL=localhost:2181 \
+ JDBC_INIT_DB=true
COPY skywalking /usr/local/tomcat/webapps/skywalking
COPY classes /usr/local/tomcat/webapps/skywalking/WEB-INF/classes/
diff --git a/skywalking-webui/docker/docker-entrypoint.sh b/skywalking-webui/docker/docker-entrypoint.sh
index b4dc6c0be..d435bd54f 100644
--- a/skywalking-webui/docker/docker-entrypoint.sh
+++ b/skywalking-webui/docker/docker-entrypoint.sh
@@ -10,6 +10,9 @@ eval sed -i -e 's/\{mysql-username\}/$MYSQL_USER/' /usr/local/tomcat/webapps/sky
echo "replace mysql-password with $MYSQL_PASSWORD"
eval sed -i -e 's/\{mysql-password\}/$MYSQL_PASSWORD/' /usr/local/tomcat/webapps/skywalking/WEB-INF/classes/jdbc.properties
+echo "replace jdbc_init_db with $JDBC_INIT_DB"
+eval sed -i -e 's/\{init_db\}/$JDBC_INIT_DB/' /usr/local/tomcat/webapps/skywalking/WEB-INF/classes/jdbc.properties
+
echo "replace registry_center_url with $REGISTRY_CENTER_URL"
eval sed -i -e 's/\{registry_center_url\}/$REGISTRY_CENTER_URL/' /usr/local/tomcat/webapps/skywalking/WEB-INF/classes/config.properties
diff --git a/skywalking-webui/docker/jdbc.properties b/skywalking-webui/docker/jdbc.properties
index 062c97347..1583d6eff 100644
--- a/skywalking-webui/docker/jdbc.properties
+++ b/skywalking-webui/docker/jdbc.properties
@@ -6,3 +6,4 @@ jdbc.maxTotal=200
jdbc.maxIdle=50
jdbc.maxWaitMillis=1000
jdbc.defaultAutoCommit=false
+jdbc.init_db={init_db}
diff --git a/skywalking-webui/src/main/resources/jdbc.properties b/skywalking-webui/src/main/resources/jdbc.properties
index e2268c97f..7a2b76ad6 100644
--- a/skywalking-webui/src/main/resources/jdbc.properties
+++ b/skywalking-webui/src/main/resources/jdbc.properties
@@ -6,3 +6,4 @@ jdbc.maxTotal=200
jdbc.maxIdle=50
jdbc.maxWaitMillis=1000
jdbc.defaultAutoCommit=false
+jdbc.init_db=false
\ No newline at end of file
diff --git a/skywalking-webui/src/main/resources/spring/application-jdbc.xml b/skywalking-webui/src/main/resources/spring/application-jdbc.xml
index 226d37e09..c22a5598c 100644
--- a/skywalking-webui/src/main/resources/spring/application-jdbc.xml
+++ b/skywalking-webui/src/main/resources/spring/application-jdbc.xml
@@ -33,7 +33,7 @@
-
+