diff --git a/6/6.0-GA/base/Dockerfile b/6/6.0-GA/base/Dockerfile
new file mode 100644
index 0000000..e00274c
--- /dev/null
+++ b/6/6.0-GA/base/Dockerfile
@@ -0,0 +1,90 @@
+# 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.
+
+FROM openjdk:8-jre-alpine
+
+LABEL maintainer="hanahmily@apache.org"
+
+# Install required packages
+RUN apk add --no-cache \
+    bash \
+    python \
+    su-exec
+
+
+ENV SKYWALKING_HOME=/skywalking
+RUN mkdir -p "${SKYWALKING_HOME}"
+WORKDIR $SKYWALKING_HOME
+
+ENV GPG_KEYS A968F6905E0ACB59E5B24C15D3D9CD50820184C2 B0801BC746F965029A1338072EF5026E70A55777 D360AB2AB20B28403270E2CBE8608938DB25E06B
+ENV SKYWALKING_VERSION=6.0.0-GA
+ENV SKYWALKING_SHA512 a19a24b790f41b1d7f93547104fbfc70a1dc208d855026b0c4696d1991518a952d031b62a76bfa923394042757dc92aa87e6cac6502d015f30258e9959e393bf
+
+ENV SKYWALKING_TGZ_URLS \
+        https://www.apache.org/dyn/closer.cgi?action=download&filename=incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz \
+        # if the version is outdated, we might have to pull from the dist/archive :/
+	    https://www-us.apache.org/dist/incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz \
+	    https://www.apache.org/dist/incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz \
+	    https://archive.apache.org/dist/incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz
+
+ENV SKYWALKING_ASC_URLS \
+        https://www.apache.org/dyn/closer.cgi?action=download&filename=incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz.asc \
+        # if the version is outdated, we might have to pull from the dist/archive :/
+	    https://www-us.apache.org/dist/incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz.asc \
+	    https://www.apache.org/dist/incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz.asc \
+	    https://archive.apache.org/dist/incubator/skywalking/$SKYWALKING_VERSION/apache-skywalking-apm-incubating-$SKYWALKING_VERSION.tar.gz.asc
+
+RUN set -eux; \
+	\
+	apk add --no-cache --virtual .fetch-deps \
+		gnupg \
+		\
+		ca-certificates \
+		openssl \
+	; \
+	\
+	export GNUPGHOME="$(mktemp -d)"; \
+	for key in $GPG_KEYS; do \
+		gpg --batch --keyserver pgp.mit.edu --recv-keys "$key"; \
+	done; \
+	\
+	success=; \
+	for url in $SKYWALKING_TGZ_URLS; do \
+		if wget -O skywalking.tar.gz "$url"; then \
+			success=1; \
+			break; \
+		fi; \
+	done; \
+	[ -n "$success" ]; \
+	\
+	echo "$SKYWALKING_SHA512 *skywalking.tar.gz" | sha512sum -c -; \
+	\
+	success=; \
+	for url in $SKYWALKING_ASC_URLS; do \
+		if wget -O skywalking.tar.gz.asc "$url"; then \
+			success=1; \
+			break; \
+		fi; \
+	done; \
+	[ -n "$success" ]; \
+	\
+	gpg --batch --verify skywalking.tar.gz.asc skywalking.tar.gz; \
+	tar -xvf skywalking.tar.gz --strip-components=1; \
+	rm -rf bin/; \
+	rm skywalking.tar.gz*; \
+	command -v gpgconf && gpgconf --kill all || :; \
+	rm -rf "$GNUPGHOME"; \
+    apk del .fetch-deps
diff --git a/6/6.0-GA/compose/README.md b/6/6.0-GA/compose/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/6/6.0-GA/compose/README.md
diff --git a/6/6.0-GA/compose/config/alarm-settings.yml b/6/6.0-GA/compose/config/alarm-settings.yml
new file mode 100644
index 0000000..eab4407
--- /dev/null
+++ b/6/6.0-GA/compose/config/alarm-settings.yml
@@ -0,0 +1,72 @@
+# 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.
+
+# Sample alarm rules.
+rules:
+  # Rule unique name, must be ended with `_rule`.
+  service_resp_time_rule:
+    indicator-name: service_resp_time
+    op: ">"
+    threshold: 1000
+    period: 10
+    count: 3
+    silence-period: 5
+    message: Response time of service {name} is more than 1000ms in last 3 minutes.
+  service_sla_rule:
+    # Indicator value need to be long, double or int
+    indicator-name: service_sla
+    op: "<"
+    threshold: 8000
+    # The length of time to evaluate the metric
+    period: 10
+    # How many times after the metric match the condition, will trigger alarm
+    count: 2
+    # How many times of checks, the alarm keeps silence after alarm triggered, default as same as period.
+    silence-period: 3
+    message: Successful rate of service {name} is lower than 80% in last 2 minutes.
+  service_p90_sla_rule:
+    # Indicator value need to be long, double or int
+    indicator-name: service_p90
+    op: ">"
+    threshold: 1000
+    period: 10
+    count: 3
+    silence-period: 5
+    message: 90% response time of service {name} is lower than 1000ms in last 3 minutes
+  service_instance_resp_time_rule:
+    indicator-name: service_instance_resp_time
+    op: ">"
+    threshold: 1000
+    period: 10
+    count: 2
+    silence-period: 5
+    message: Response time of service instance {name} is more than 1000ms in last 2 minutes.
+#  Active endpoint related metric alarm will cost more memory than service and service instance metric alarm.
+#  Because the number of endpoint is much more than service and instance.
+#
+#  endpoint_avg_rule:
+#    indicator-name: endpoint_avg
+#    op: ">"
+#    threshold: 1000
+#    period: 10
+#    count: 2
+#    silence-period: 5
+#    message: Response time of endpoint {name} is more than 1000ms in last 2 minutes.
+
+webhooks:
+#  - http://127.0.0.1/notify/
+#  - http://127.0.0.1/go-wechat/
+
diff --git a/6/6.0-GA/compose/config/application.yml b/6/6.0-GA/compose/config/application.yml
new file mode 100644
index 0000000..46ffe83
--- /dev/null
+++ b/6/6.0-GA/compose/config/application.yml
@@ -0,0 +1,99 @@
+# 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.
+
+cluster:
+  standalone:
+#   Please check your ZooKeeper is 3.5+, However, it is also compatible with ZooKeeper 3.4.x. Replace the ZooKeeper 3.5+
+#   library the oap-libs folder with your ZooKeeper 3.4.x library.
+#  zookeeper:
+#    nameSpace: ${SW_NAMESPACE:""}
+#    hostPort: ${SW_CLUSTER_ZK_HOST_PORT:localhost:2181}
+#    #Retry Policy
+#    baseSleepTimeMs: ${SW_CLUSTER_ZK_SLEEP_TIME:1000} # initial amount of time to wait between retries
+#    maxRetries: ${SW_CLUSTER_ZK_MAX_RETRIES:3} # max number of times to retry
+#  kubernetes:
+#    watchTimeoutSeconds: ${SW_CLUSTER_K8S_WATCH_TIMEOUT:60}
+#    namespace: ${SW_CLUSTER_K8S_NAMESPACE:default}
+#    labelSelector: ${SW_CLUSTER_K8S_LABEL:app=collector,release=skywalking}
+#    uidEnvName: ${SW_CLUSTER_K8S_UID:SKYWALKING_COLLECTOR_UID}
+#  consul:
+#    serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
+#     Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500
+#    hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500}
+core:
+  default:
+    restHost: ${SW_CORE_REST_HOST:0.0.0.0}
+    restPort: ${SW_CORE_REST_PORT:12800}
+    restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
+    gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
+    gRPCPort: ${SW_CORE_GRPC_PORT:11800}
+    downsampling:
+      - Hour
+      - Day
+      - Month
+    # Set a timeout on metric data. After the timeout has expired, the metric data will automatically be deleted.
+    recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:90} # Unit is minute
+    minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90} # Unit is minute
+    hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36} # Unit is hour
+    dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45} # Unit is day
+    monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18} # Unit is month
+storage:
+  elasticsearch:
+    nameSpace: ${SW_NAMESPACE:""}
+    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:elasticsearch:9200}
+    indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
+    indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
+    # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
+    bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000} # Execute the bulk every 2000 requests
+    bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20} # flush the bulk every 20mb
+    flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
+    concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
+#  h2:
+#    driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
+#    url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
+#    user: ${SW_STORAGE_H2_USER:sa}
+#  mysql:
+receiver-register:
+  default:
+receiver-trace:
+  default:
+    bufferPath: ${SW_RECEIVER_BUFFER_PATH:../trace-buffer/}  # Path to trace buffer files, suggest to use absolute path
+    bufferOffsetMaxFileSize: ${SW_RECEIVER_BUFFER_OFFSET_MAX_FILE_SIZE:100} # Unit is MB
+    bufferDataMaxFileSize: ${SW_RECEIVER_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB
+    bufferFileCleanWhenRestart: ${SW_RECEIVER_BUFFER_FILE_CLEAN_WHEN_RESTART:false}
+    sampleRate: ${SW_TRACE_SAMPLE_RATE:10000} # The sample rate precision is 1/10000. 10000 means 100% sample in default.
+receiver-jvm:
+  default:
+service-mesh:
+  default:
+    bufferPath: ${SW_SERVICE_MESH_BUFFER_PATH:../mesh-buffer/}  # Path to trace buffer files, suggest to use absolute path
+    bufferOffsetMaxFileSize: ${SW_SERVICE_MESH_OFFSET_MAX_FILE_SIZE:100} # Unit is MB
+    bufferDataMaxFileSize: ${SW_SERVICE_MESH_BUFFER_DATA_MAX_FILE_SIZE:500} # Unit is MB
+    bufferFileCleanWhenRestart: ${SW_SERVICE_MESH_BUFFER_FILE_CLEAN_WHEN_RESTART:false}
+istio-telemetry:
+  default:
+#receiver_zipkin:
+#  default:
+#    host: ${SW_RECEIVER_ZIPKIN_HOST:0.0.0.0}
+#    port: ${SW_RECEIVER_ZIPKIN_PORT:9411}
+#    contextPath: ${SW_RECEIVER_ZIPKIN_CONTEXT_PATH:/}
+query:
+  graphql:
+    path: ${SW_QUERY_GRAPHQL_PATH:/graphql}
+alarm:
+  default:
+telemetry:
+  prometheus:
diff --git a/6/6.0-GA/compose/config/component-libraries.yml b/6/6.0-GA/compose/config/component-libraries.yml
new file mode 100644
index 0000000..4fdf028
--- /dev/null
+++ b/6/6.0-GA/compose/config/component-libraries.yml
@@ -0,0 +1,295 @@
+# 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.
+
+# Define all component libraries' names and IDs, used in monitored application.
+# This is a bothway mapping, agent or SDK could use the value(ID) to represent the component name in uplink data.
+#
+# ######
+#   id
+# ######
+# We highly recommend DO NOT change the IDs in these file, just append new one, and make sure the ID unique.
+# Any replacement will cause visualization and aggregation error.
+#
+# All IDs in this files are reserved, even some IDs removed by some reasons, those IDs will be abandoned.
+#
+# ######
+# languages
+# ######
+# Languages declare which languages are using this component. Multi languages should be separated by `,`
+
+Tomcat:
+  id: 1
+  languages: Java
+HttpClient:
+  id: 2
+  languages: Java,C#,Node.js
+Dubbo:
+  id: 3
+  languages: Java
+H2:
+  id: 4
+  languages: Java
+Mysql:
+  id: 5
+  languages: Java,C#,Node.js
+ORACLE:
+  id: 6
+  languages: Java
+Redis:
+  id: 7
+  languages: Java,C#,Node.js
+Motan:
+  id: 8
+  languages: Java
+MongoDB:
+  id: 9
+  languages: Java,C#,Node.js
+Resin:
+  id: 10
+  languages: Java
+Feign:
+  id: 11
+  languages: Java
+OKHttp:
+  id: 12
+  languages: Java
+SpringRestTemplate:
+  id: 13
+  languages: Java
+SpringMVC:
+  id: 14
+  languages: Java
+Struts2:
+  id: 15
+  languages: Java
+NutzMVC:
+  id: 16
+  languages: Java
+NutzHttp:
+  id: 17
+  languages: Java
+JettyClient:
+  id: 18
+  languages: Java
+JettyServer:
+  id: 19
+  languages: Java
+Memcached:
+  id: 20
+  languages: Java
+ShardingJDBC:
+  id: 21
+  languages: Java
+PostgreSQL:
+  id: 22
+  languages: Java,C#,Node.js
+GRPC:
+  id: 23
+  languages: Java
+ElasticJob:
+  id: 24
+  languages: Java
+RocketMQ:
+  id: 25
+  languages: Java
+httpasyncclient:
+  id: 26
+  languages: Java
+Kafka:
+  id: 27
+  languages: Java
+ServiceComb:
+  id: 28
+  languages: Java
+Hystrix:
+  id: 29
+  languages: Java
+Jedis:
+  id: 30
+  languages: Java
+SQLite:
+  id: 31
+  languages: Java,C#
+h2-jdbc-driver:
+  id: 32
+  languages: Java
+mysql-connector-java:
+  id: 33
+  languages: Java
+ojdbc:
+  id: 34
+  languages: Java
+Spymemcached:
+  id: 35
+  languages: Java
+Xmemcached:
+  id: 36
+  languages: Java
+postgresql-jdbc-driver:
+  id: 37
+  languages: Java
+rocketMQ-producer:
+  id: 38
+  languages: Java
+rocketMQ-consumer:
+  id: 39
+  languages: Java
+kafka-producer:
+  id: 40
+  languages: Java
+kafka-consumer:
+  id: 41
+  languages: Java
+mongodb-driver:
+  id: 42
+  languages: Java
+SOFARPC:
+  id: 43
+  languages: Java
+ActiveMQ:
+  id: 44
+  languages: Java
+activemq-producer:
+  id: 45
+  languages: Java
+activemq-consumer:
+  id: 46
+  languages: Java
+Elasticsearch:
+  id: 47
+  languages: Java
+transport-client:
+  id: 48
+  languages: Java
+http:
+  id: 49
+  languages: Java,C#,Node.js
+rpc:
+  id: 50
+  languages: Java,C#,Node.js
+RabbitMQ:
+  id: 51
+  languages: Java
+rabbitmq-producer:
+  id: 52
+  languages: Java
+rabbitmq-consumer:
+  id: 53
+  languages: Java
+Canal:
+  id: 54
+  languages: Java
+Gson:
+  id: 55
+  languages: Java
+Redisson:
+  id: 56
+  languages: Java
+
+
+# .NET/.NET Core components
+# [3000, 4000) for C#/.NET only
+AspNetCore:
+  id: 3001
+  languages: C#
+EntityFrameworkCore:
+  id: 3002
+  languages: C#
+SqlClient:
+  id: 3003
+  languages: C#
+CAP:
+  id: 3004
+  languages: C#
+StackExchange.Redis:
+  id: 3005
+  languages: C#
+SqlServer:
+  id: 3006
+  languages: C#
+Npgsql:
+  id: 3007
+  languages: C#
+MySqlConnector:
+  id: 3008
+  languages: C#
+EntityFrameworkCore.InMemory:
+  id: 3009
+  languages: C#
+EntityFrameworkCore.SqlServer:
+  id: 3010
+  languages: C#
+EntityFrameworkCore.Sqlite:
+  id: 3011
+  languages: C#
+Pomelo.EntityFrameworkCore.MySql:
+  id: 3012
+  languages: C#
+Npgsql.EntityFrameworkCore.PostgreSQL:
+  id: 3013
+  languages: C#
+InMemoryDatabase:
+  id: 3014
+  languages: C#
+AspNet:
+  id: 3015
+  languages: C#
+
+# NoeJS components
+# [4000, 5000) for Node.js agent
+HttpServer:
+  id: 4001
+  languages: Node.js
+express:
+  id: 4002
+  languages: Node.js
+Egg:
+  id: 4003
+  languages: Node.js
+Koa:
+  id: 4004
+  languages: Node.js
+
+# Component Server mapping defines the server display names of some components
+# e.g.
+# Jedis is a client library in Java for Redis server
+Component-Server-Mappings:
+  mongodb-driver: MongoDB
+  rocketMQ-producer: RocketMQ
+  rocketMQ-consumer: RocketMQ
+  kafka-producer: Kafka
+  kafka-consumer: Kafka
+  activemq-producer: ActiveMQ
+  activemq-consumer: ActiveMQ
+  rabbitmq-producer: RabbitMQ
+  rabbitmq-consumer: RabbitMQ
+  postgresql-jdbc-driver: PostgreSQL
+  Xmemcached: Memcached
+  Spymemcached: Memcached
+  h2-jdbc-driver: H2
+  mysql-connector-java: Mysql
+  Jedis: Redis
+  StackExchange.Redis: Redis
+  Redisson: Redis
+  SqlClient: SqlServer
+  Npgsql: PostgreSQL
+  MySqlConnector: Mysql
+  EntityFrameworkCore.InMemory: InMemoryDatabase
+  EntityFrameworkCore.SqlServer: SqlServer
+  EntityFrameworkCore.Sqlite: SQLite
+  Pomelo.EntityFrameworkCore.MySql: Mysql
+  Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL
+  transport-client: Elasticsearch
diff --git a/6/6.0-GA/compose/config/datasource-settings.properties b/6/6.0-GA/compose/config/datasource-settings.properties
new file mode 100644
index 0000000..70b0099
--- /dev/null
+++ b/6/6.0-GA/compose/config/datasource-settings.properties
@@ -0,0 +1,31 @@
+#
+# 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.
+#
+#
+
+jdbcUrl=jdbc:mysql://localhost:3306/swtest
+dataSource.user=root
+dataSource.password=root@1234
+dataSource.cachePrepStmts=true
+dataSource.prepStmtCacheSize=250
+dataSource.prepStmtCacheSqlLimit=2048
+dataSource.useServerPrepStmts=true
+dataSource.useLocalSessionState=true
+dataSource.rewriteBatchedStatements=true
+dataSource.cacheResultSetMetadata=true
+dataSource.cacheServerConfiguration=true
+dataSource.elideSetAutoCommits=true
+dataSource.maintainTimeStats=false
\ No newline at end of file
diff --git a/6/6.0-GA/compose/config/log4j2.xml b/6/6.0-GA/compose/config/log4j2.xml
new file mode 100644
index 0000000..c2439b6
--- /dev/null
+++ b/6/6.0-GA/compose/config/log4j2.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  ~
+  -->
+
+<Configuration status="INFO">
+    <Appenders>
+        <Console name="Console" target="SYSTEM_OUT">
+            <PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <logger name="org.eclipse.jetty" level="INFO"/>
+        <logger name="org.apache.zookeeper" level="INFO"/>
+        <logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
+        <logger name="io.grpc.netty" level="INFO"/>
+        <logger name="org.apache.skywalking.aop.server.receiver.mesh" level="DEBUG"/>
+        <Root level="INFO">
+            <AppenderRef ref="Console"/>
+        </Root>
+    </Loggers>
+</Configuration>
diff --git a/6/6.0-GA/compose/docker-compose.yml b/6/6.0-GA/compose/docker-compose.yml
new file mode 100644
index 0000000..51fcc31
--- /dev/null
+++ b/6/6.0-GA/compose/docker-compose.yml
@@ -0,0 +1,53 @@
+# 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.
+
+version: '3.3'
+services:
+  elasticsearch:
+    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
+    container_name: elasticsearch
+    restart: always
+    ports:
+      - 9200:9200
+      - 9300:9300
+    environment:
+      discovery.type: single-node
+  oap:
+    image: skywalking/oap:6.0.0-GA
+    container_name: oap
+    depends_on:
+      - elasticsearch
+    links:
+      - elasticsearch
+    restart: always
+    ports:
+      - 11800:11800
+      - 12800:12800
+    volumes:
+      - ./config:/skywalking/config:ro
+  ui:
+    image: skywalking/ui:6.0.0-GA
+    container_name: ui
+    depends_on:
+      - oap
+    links:
+      - oap
+    restart: always
+    ports:
+      - 8080:8080
+    environment:
+      collector.ribbon.listOfServers: oap:12800
+      collector.ribbon.ReadTimeout: 20000
diff --git a/6/6.0-GA/oap/Dockerfile b/6/6.0-GA/oap/Dockerfile
new file mode 100644
index 0000000..172b29e
--- /dev/null
+++ b/6/6.0-GA/oap/Dockerfile
@@ -0,0 +1,37 @@
+# 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.
+
+FROM skywalking/base:6.0.0-GA
+
+LABEL maintainer="hanahmily@apache.org"
+
+ENV SKYWALKING_HOME=/skywalking \
+    JAVA_OPTS=" -Xms256M -Xmx512M"
+
+WORKDIR $SKYWALKING_HOME
+
+RUN set -eux; \
+    apk add --no-cache --virtual \
+    bash; \
+    rm -rf "config/log4j2.xml"; \
+    rm -rf "webapp"; rm -rf "agent";
+
+COPY log4j2.xml config/
+COPY docker-entrypoint.sh .
+
+EXPOSE 12800 11800
+
+ENTRYPOINT ["sh", "docker-entrypoint.sh"]
\ No newline at end of file
diff --git a/6/6.0-GA/oap/docker-entrypoint.sh b/6/6.0-GA/oap/docker-entrypoint.sh
new file mode 100644
index 0000000..f3f19e0
--- /dev/null
+++ b/6/6.0-GA/oap/docker-entrypoint.sh
@@ -0,0 +1,28 @@
+# 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.
+
+#!/bin/bash
+
+set -ex
+
+CLASSPATH="config:$CLASSPATH"
+for i in oap-libs/*.jar
+do
+    CLASSPATH="$i:$CLASSPATH"
+done
+
+exec java ${JAVA_OPTS} -classpath $CLASSPATH \
+ org.apache.skywalking.oap.server.starter.OAPServerStartUp "$@"
\ No newline at end of file
diff --git a/6/6.0-GA/oap/log4j2.xml b/6/6.0-GA/oap/log4j2.xml
new file mode 100644
index 0000000..b1f1818
--- /dev/null
+++ b/6/6.0-GA/oap/log4j2.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  ~
+  -->
+
+<Configuration status="INFO">
+    <Appenders>
+        <Console name="Console" target="SYSTEM_OUT">
+            <PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
+        </Console>
+    </Appenders>
+    <Loggers>
+        <logger name="org.eclipse.jetty" level="INFO"/>
+        <logger name="org.apache.zookeeper" level="INFO"/>
+        <logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
+        <logger name="io.grpc.netty" level="INFO"/>
+        <Root level="INFO">
+            <AppenderRef ref="Console"/>
+        </Root>
+    </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/6/6.0-GA/ui/Dockerfile b/6/6.0-GA/ui/Dockerfile
new file mode 100644
index 0000000..cc7f245
--- /dev/null
+++ b/6/6.0-GA/ui/Dockerfile
@@ -0,0 +1,37 @@
+# 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.
+
+FROM skywalking/base:6.0.0-GA
+
+LABEL maintainer="hanahmily@apache.org"
+
+ENV SKYWALKING_HOME=/skywalking \
+    JAVA_OPTS=" -Xms256M -Xmx512M"
+
+WORKDIR $SKYWALKING_HOME
+
+RUN set -eux; \
+    apk add --no-cache --virtual \
+    bash; \
+    rm -rf "config"; rm -rf "oap-libs"; \
+    rm -rf "agent";
+
+COPY docker-entrypoint.sh .
+COPY logback.xml webapp/
+
+EXPOSE 8080
+
+ENTRYPOINT ["sh", "docker-entrypoint.sh"]
\ No newline at end of file
diff --git a/6/6.0-GA/ui/docker-entrypoint.sh b/6/6.0-GA/ui/docker-entrypoint.sh
new file mode 100644
index 0000000..2a857b7
--- /dev/null
+++ b/6/6.0-GA/ui/docker-entrypoint.sh
@@ -0,0 +1,21 @@
+# 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.
+
+#!/bin/bash
+
+set -ex
+
+exec java -jar webapp/skywalking-webapp.jar --logging.config=webapp/logback.xml "$@"
\ No newline at end of file
diff --git a/6/6.0-GA/ui/logback.xml b/6/6.0-GA/ui/logback.xml
new file mode 100644
index 0000000..834036d
--- /dev/null
+++ b/6/6.0-GA/ui/logback.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ 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.
+  ~
+  -->
+<configuration>
+    <include resource="org/springframework/boot/logging/logback/base.xml" />
+</configuration>
\ No newline at end of file
