You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2021/11/17 13:26:49 UTC

[skywalking] branch master updated: Add Docker images for arm64 architecture (#8141)

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new ba630a3  Add Docker images for arm64 architecture (#8141)
ba630a3 is described below

commit ba630a3cb941b79fccf3f3ded842a61ce24d77ed
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Wed Nov 17 21:26:25 2021 +0800

    Add Docker images for arm64 architecture (#8141)
---
 .github/actions/infra-e2e-test/action.yml          |  6 ++
 .github/workflows/e2e.istio.yaml                   |  3 +-
 .github/workflows/e2e.jdk-versions.yaml            |  2 +-
 .github/workflows/publish-docker.yaml              |  6 +-
 CHANGES.md                                         |  1 +
 Makefile                                           | 71 ++++++++--------------
 docker/oap/{Dockerfile.oap => Dockerfile}          |  6 +-
 docker/ui/{Dockerfile.ui => Dockerfile}            |  6 +-
 docs/en/guides/How-to-release.md                   |  2 +-
 test/e2e-v2/cases/alarm/es/e2e.yaml                |  2 +-
 test/e2e-v2/cases/alarm/h2/e2e.yaml                |  2 +-
 test/e2e-v2/cases/alarm/influxdb/e2e.yaml          |  2 +-
 test/e2e-v2/cases/alarm/mysql/docker-compose.yml   |  2 +-
 test/e2e-v2/cases/alarm/mysql/e2e.yaml             |  2 +-
 test/e2e-v2/cases/alarm/postgres/e2e.yaml          |  2 +-
 test/e2e-v2/cases/browser/e2e.yaml                 |  4 +-
 test/e2e-v2/cases/cluster/zk/es/e2e.yaml           |  2 +-
 test/e2e-v2/cases/cluster/zk/influxdb/e2e.yaml     |  2 +-
 .../cases/cluster/zk/mysql/docker-compose.yml      |  4 +-
 test/e2e-v2/cases/cluster/zk/mysql/e2e.yaml        |  2 +-
 test/e2e-v2/cases/event/es/e2e.yaml                |  2 +-
 test/e2e-v2/cases/event/h2/e2e.yaml                |  2 +-
 test/e2e-v2/cases/event/influxdb/e2e.yaml          |  2 +-
 test/e2e-v2/cases/event/mysql/docker-compose.yml   |  2 +-
 test/e2e-v2/cases/event/mysql/e2e.yaml             |  2 +-
 test/e2e-v2/cases/gateway/e2e.yaml                 |  2 +-
 test/e2e-v2/cases/go/e2e.yaml                      |  2 +-
 test/e2e-v2/cases/kafka/log/e2e.yaml               |  2 +-
 test/e2e-v2/cases/kafka/meter/e2e.yaml             |  2 +-
 test/e2e-v2/cases/kafka/profile/e2e.yaml           |  2 +-
 test/e2e-v2/cases/kafka/simple-so11y/e2e.yaml      |  2 +-
 test/e2e-v2/cases/log/es/e2e.yaml                  |  2 +-
 test/e2e-v2/cases/log/fluent-bit/e2e.yaml          |  2 +-
 test/e2e-v2/cases/log/h2/e2e.yaml                  |  2 +-
 test/e2e-v2/cases/log/influxdb/e2e.yaml            |  2 +-
 test/e2e-v2/cases/log/mysql/docker-compose.yml     |  2 +-
 test/e2e-v2/cases/log/mysql/e2e.yaml               |  2 +-
 test/e2e-v2/cases/log/postgres/e2e.yaml            |  2 +-
 test/e2e-v2/cases/lua/e2e.yaml                     |  2 +-
 test/e2e-v2/cases/meter/e2e.yaml                   |  2 +-
 test/e2e-v2/cases/nodejs/e2e.yaml                  |  2 +-
 test/e2e-v2/cases/php/e2e.yaml                     |  2 +-
 test/e2e-v2/cases/profile/es/e2e.yaml              |  2 +-
 test/e2e-v2/cases/profile/h2/e2e.yaml              |  2 +-
 test/e2e-v2/cases/profile/influxdb/e2e.yaml        |  2 +-
 test/e2e-v2/cases/profile/mysql/docker-compose.yml |  2 +-
 test/e2e-v2/cases/profile/mysql/e2e.yaml           |  2 +-
 test/e2e-v2/cases/python/e2e.yaml                  |  2 +-
 .../cases/satellite/native-protocols/e2e.yaml      |  2 +-
 test/e2e-v2/cases/simple/auth/e2e.yaml             |  2 +-
 test/e2e-v2/cases/simple/jdk/e2e.yaml              |  2 +-
 test/e2e-v2/cases/simple/mtls/e2e.yaml             |  2 +-
 test/e2e-v2/cases/simple/ssl/e2e.yaml              |  2 +-
 test/e2e-v2/cases/so11y/e2e.yaml                   |  2 +-
 test/e2e-v2/cases/storage/es/e2e.yaml              |  2 +-
 test/e2e-v2/cases/storage/h2/e2e.yaml              |  2 +-
 test/e2e-v2/cases/storage/influxdb/e2e.yaml        |  2 +-
 test/e2e-v2/cases/storage/mysql/docker-compose.yml |  2 +-
 test/e2e-v2/cases/storage/mysql/e2e.yaml           |  2 +-
 test/e2e-v2/cases/storage/opensearch/e2e.yaml      |  2 +-
 test/e2e-v2/cases/storage/postgres/e2e.yaml        |  2 +-
 test/e2e-v2/cases/storage/tidb/docker-compose.yml  |  2 +-
 test/e2e-v2/cases/storage/tidb/e2e.yaml            |  2 +-
 test/e2e-v2/cases/ttl/es/e2e.yaml                  |  2 +-
 test/e2e-v2/cases/ttl/influxdb/e2e.yaml            |  2 +-
 test/e2e-v2/cases/ttl/postgresql/e2e.yaml          |  2 +-
 test/e2e-v2/cases/ttl/tidb/docker-compose.yml      |  2 +-
 test/e2e-v2/cases/ttl/tidb/e2e.yaml                |  2 +-
 .../cases/vm/prometheus-node-exporter/e2e.yaml     |  2 +-
 test/e2e-v2/cases/vm/zabbix/e2e.yaml               |  2 +-
 test/e2e-v2/script/docker-compose/base-compose.yml |  2 +-
 .../script/prepare/setup-oap/download-mysql.sh     |  2 -
 72 files changed, 106 insertions(+), 127 deletions(-)

diff --git a/.github/actions/infra-e2e-test/action.yml b/.github/actions/infra-e2e-test/action.yml
index 4ee6545..9645852 100644
--- a/.github/actions/infra-e2e-test/action.yml
+++ b/.github/actions/infra-e2e-test/action.yml
@@ -58,3 +58,9 @@ runs:
       uses: apache/skywalking-infra-e2e@main
       with:
         e2e-file: $GITHUB_WORKSPACE/test/e2e-v2/cases/${{ inputs.config-file }}
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      name: Upload Logs
+      with:
+        name: logs
+        path: "${{ env.SW_INFRA_E2E_LOG_DIR }}"
diff --git a/.github/workflows/e2e.istio.yaml b/.github/workflows/e2e.istio.yaml
index 32e8df5..c6be832 100644
--- a/.github/workflows/e2e.istio.yaml
+++ b/.github/workflows/e2e.istio.yaml
@@ -27,7 +27,6 @@ on:
 env:
   SKIP_TEST: true
   TAG: ${{ github.sha }}
-  SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk11:alpine-jre
 
 concurrency:
   group: e2e-istio-${{ github.event.pull_request.number || github.ref }}
@@ -80,4 +79,4 @@ jobs:
         if: env.SKIP_CI != 'true'
         uses: ./.github/actions/infra-e2e-test
         with:
-          config-file: istio/metrics/e2e.yaml
\ No newline at end of file
+          config-file: istio/metrics/e2e.yaml
diff --git a/.github/workflows/e2e.jdk-versions.yaml b/.github/workflows/e2e.jdk-versions.yaml
index 36db82e..23f8d11 100644
--- a/.github/workflows/e2e.jdk-versions.yaml
+++ b/.github/workflows/e2e.jdk-versions.yaml
@@ -36,7 +36,7 @@ jobs:
         jdk: [ 8, 11, 12, 13, 14, 15, 16 ]
     env:
       SW_AGENT_JDK_VERSION: ${{ matrix.jdk }}
-      SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.jdk }}:alpine-jre
+      SW_OAP_BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.jdk }}:jre
     steps:
       - uses: actions/checkout@v2
         with:
diff --git a/.github/workflows/publish-docker.yaml b/.github/workflows/publish-docker.yaml
index ddba718..6cdb3fb 100644
--- a/.github/workflows/publish-docker.yaml
+++ b/.github/workflows/publish-docker.yaml
@@ -52,7 +52,5 @@ jobs:
           registry: ${{ env.HUB }}
           username: ${{ github.actor }}
           password: ${{ secrets.GITHUB_TOKEN }}
-      - name: Build docker image
-        run: |
-          make docker || make docker
-          make docker.push || make docker.push
+      - name: Build and push docker images
+        run: make build.all docker.push
diff --git a/CHANGES.md b/CHANGES.md
index 8fd8127..e448ff9 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -9,6 +9,7 @@ Release Notes.
 
 * E2E tests immigrate to e2e-v2.
 * Support JDK 16 and 17.
+* Add Docker images for arm64 architecture.
 
 #### OAP Server
 
diff --git a/Makefile b/Makefile
index 7aa6b24..de38f97 100644
--- a/Makefile
+++ b/Makefile
@@ -43,64 +43,47 @@ OAP_NAME ?= oap
 UI_NAME ?= ui
 TAG ?= latest
 
-.SECONDEXPANSION: #allow $@ to be used in dependency list
-
-.PHONY: docker docker.all docker.oap
+.PHONY: docker docker.all
 
 docker: init build.all docker.all
 
 DOCKER_TARGETS:=docker.oap docker.ui
 
-docker.all: $(DOCKER_TARGETS)
-
 ifneq ($(SW_OAP_BASE_IMAGE),)
   BUILD_ARGS := $(BUILD_ARGS) --build-arg BASE_IMAGE=$(SW_OAP_BASE_IMAGE)
 endif
 
 BUILD_ARGS := $(BUILD_ARGS) --build-arg DIST=$(DIST) --build-arg SKYWALKING_CLI_VERSION=$(CLI_VERSION)
 
-docker.oap: $(CONTEXT)/$(DIST)
-docker.oap: $(SW_ROOT)/docker/oap/Dockerfile.oap
-docker.oap: $(SW_ROOT)/docker/oap/docker-entrypoint.sh
-docker.oap: $(SW_ROOT)/docker/oap/log4j2.xml
-docker.oap: NAME = $(OAP_NAME)
-docker.oap:
-	$(DOCKER_RULE)
+%.ui: NAME = $(UI_NAME)
+%.oap: NAME = $(OAP_NAME)
 
-docker.ui: $(CONTEXT)/$(DIST)
-docker.ui: $(SW_ROOT)/docker/ui/Dockerfile.ui
-docker.ui: $(SW_ROOT)/docker/ui/docker-entrypoint.sh
-docker.ui: $(SW_ROOT)/docker/ui/logback.xml
-docker.ui: NAME = $(UI_NAME)
-docker.ui:
+docker.%: PLATFORMS =
+docker.%: LOAD_OR_PUSH = --load
+push.%: PLATFORMS = --platform linux/amd64,linux/arm64
+push.%: LOAD_OR_PUSH = --push
+
+docker.% push.docker.%: $(CONTEXT)/$(DIST) $(SW_ROOT)/docker/%/*
 	$(DOCKER_RULE)
 
-# $@ is the name of the target
+docker.all: $(DOCKER_TARGETS)
+docker.push: $(DOCKER_TARGETS:%=push.%)
+
 # $^ the name of the dependencies for the target
 # Rule Steps #
 ##############
-# 1. Make a directory $(DOCKER_BUILD_TOP)/%@
-# 2. This rule uses cp to copy all dependency filenames into into $(DOCKER_BUILD_TOP/$@
-# 3. This rule then changes directories to $(DOCKER_BUID_TOP)/$@
-# 4. This rule runs $(BUILD_PRE) prior to any docker build and only if specified as a dependency variable
-# 5. This rule finally runs docker build passing $(BUILD_ARGS) to docker if they are specified as a dependency variable
-
-DOCKER_RULE=time (mkdir -p $(DOCKER_BUILD_TOP)/$@ && cp -r $^ $(DOCKER_BUILD_TOP)/$@ && cd $(DOCKER_BUILD_TOP)/$@ && $(BUILD_PRE) docker build --no-cache $(BUILD_ARGS) -t $(HUB)/$(NAME):$(TAG) -f Dockerfile$(suffix $@) .)
-
-# for each docker.XXX target create a push.docker.XXX target that pushes
-# the local docker image to another hub
-# a possible optimization is to use tag.$(TGT) as a dependency to do the tag for us
-push.docker.oap: NAME = $(OAP_NAME)
-push.docker.ui: NAME = $(UI_NAME)
-
-$(foreach TGT,$(DOCKER_TARGETS),push.$(TGT)): push.%: %
-	time (docker push $(HUB)/$(NAME):$(TAG))
-
-# create a DOCKER_PUSH_TARGETS that's each of DOCKER_TARGETS with a push. prefix
-DOCKER_PUSH_TARGETS:=
-$(foreach TGT,$(DOCKER_TARGETS),$(eval DOCKER_PUSH_TARGETS+=push.$(TGT)))
-
-# Will build and push docker images.
-docker.push: $(DOCKER_PUSH_TARGETS)
-
-
+# 1. Make a directory $(DOCKER_BUILD_TOP)/$(NAME)
+# 2. This rule uses cp to copy all dependency filenames into into $(DOCKER_BUILD_TOP/$(NAME)
+# 3. This rule finally runs docker build passing $(BUILD_ARGS) to docker if they are specified as a dependency variable
+
+define DOCKER_RULE
+	mkdir -p $(DOCKER_BUILD_TOP)/$(NAME)
+	cp -r $^ $(DOCKER_BUILD_TOP)/$(NAME)
+	docker buildx create --use --driver docker-container --name skywalking_main > /dev/null 2>&1 || true
+	docker buildx build $(PLATFORMS) $(LOAD_OR_PUSH) \
+		--no-cache $(BUILD_ARGS) \
+		-t $(HUB)/$(NAME):$(TAG) \
+		-t $(HUB)/$(NAME):latest \
+		$(DOCKER_BUILD_TOP)/$(NAME)
+	docker buildx rm skywalking_main || true
+endef
diff --git a/docker/oap/Dockerfile.oap b/docker/oap/Dockerfile
similarity index 91%
rename from docker/oap/Dockerfile.oap
rename to docker/oap/Dockerfile
index 02b99ca..c6742ca 100644
--- a/docker/oap/Dockerfile.oap
+++ b/docker/oap/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-ARG BASE_IMAGE='adoptopenjdk/openjdk11:alpine'
+ARG BASE_IMAGE='adoptopenjdk/openjdk11:jre'
 
 ARG SKYWALKING_CLI_VERSION
 
@@ -22,8 +22,6 @@ FROM apache/skywalking-cli:$SKYWALKING_CLI_VERSION as cli
 
 FROM $BASE_IMAGE
 
-RUN apk add --no-cache openssl
-
 WORKDIR /skywalking
 
 ENV JAVA_OPTS=" -Xms2G "
@@ -51,4 +49,4 @@ RUN mkdir ext-config; \
 
 EXPOSE 12800 11800 1234
 
-ENTRYPOINT ["sh", "docker-entrypoint.sh"]
+ENTRYPOINT ["bash", "docker-entrypoint.sh"]
diff --git a/docker/ui/Dockerfile.ui b/docker/ui/Dockerfile
similarity index 92%
rename from docker/ui/Dockerfile.ui
rename to docker/ui/Dockerfile
index 760631c..904e593 100644
--- a/docker/ui/Dockerfile.ui
+++ b/docker/ui/Dockerfile
@@ -14,17 +14,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM adoptopenjdk/openjdk11:alpine-jre
+FROM adoptopenjdk/openjdk11:jre
 
 ENV JAVA_OPTS=" -Xms256M " \
     SW_OAP_ADDRESS="http://127.0.0.1:12800"
 
 WORKDIR skywalking
 
-RUN set -ex; \
-    apk add --no-cache \
-    bash
-
 ARG DIST
 COPY "$DIST" .
 
diff --git a/docs/en/guides/How-to-release.md b/docs/en/guides/How-to-release.md
index 4604ccc..73b2a84 100644
--- a/docs/en/guides/How-to-release.md
+++ b/docs/en/guides/How-to-release.md
@@ -297,7 +297,7 @@ export OAP_NAME=skywalking-oap-server
 export UI_NAME=skywalking-ui
 export TAG=$SW_VERSION
 export DIST=<the binary package name inside (1), e.g. apache-skywalking-apm-8.8.0.tar.gz>
-make docker.all && make docker.push
+make docker.push
 ```
 
 ## Clean up the old releases
diff --git a/test/e2e-v2/cases/alarm/es/e2e.yaml b/test/e2e-v2/cases/alarm/es/e2e.yaml
index 843d217..a44a76b 100644
--- a/test/e2e-v2/cases/alarm/es/e2e.yaml
+++ b/test/e2e-v2/cases/alarm/es/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/alarm/h2/e2e.yaml b/test/e2e-v2/cases/alarm/h2/e2e.yaml
index 843d217..a44a76b 100644
--- a/test/e2e-v2/cases/alarm/h2/e2e.yaml
+++ b/test/e2e-v2/cases/alarm/h2/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/alarm/influxdb/e2e.yaml b/test/e2e-v2/cases/alarm/influxdb/e2e.yaml
index 843d217..a44a76b 100644
--- a/test/e2e-v2/cases/alarm/influxdb/e2e.yaml
+++ b/test/e2e-v2/cases/alarm/influxdb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/alarm/mysql/docker-compose.yml b/test/e2e-v2/cases/alarm/mysql/docker-compose.yml
index f8dfa37..bcbe40f 100644
--- a/test/e2e-v2/cases/alarm/mysql/docker-compose.yml
+++ b/test/e2e-v2/cases/alarm/mysql/docker-compose.yml
@@ -39,7 +39,7 @@ services:
     environment:
       SW_STORAGE: mysql
       SW_SEARCHABLE_ALARM_TAG_KEYS: level,receivers
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     ports:
       - 12800
     depends_on:
diff --git a/test/e2e-v2/cases/alarm/mysql/e2e.yaml b/test/e2e-v2/cases/alarm/mysql/e2e.yaml
index 843d217..a44a76b 100644
--- a/test/e2e-v2/cases/alarm/mysql/e2e.yaml
+++ b/test/e2e-v2/cases/alarm/mysql/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/alarm/postgres/e2e.yaml b/test/e2e-v2/cases/alarm/postgres/e2e.yaml
index 843d217..a44a76b 100644
--- a/test/e2e-v2/cases/alarm/postgres/e2e.yaml
+++ b/test/e2e-v2/cases/alarm/postgres/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/browser/e2e.yaml b/test/e2e-v2/cases/browser/e2e.yaml
index d265ecd..9d871fd 100644
--- a/test/e2e-v2/cases/browser/e2e.yaml
+++ b/test/e2e-v2/cases/browser/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
@@ -111,4 +111,4 @@ verify:
     - expected: expected/trace-detail.yml
       query: |
         swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace $( \
-          swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls | grep -A 5 'index.html' | tail -n1 | awk -F ' ' '{print $2}')
\ No newline at end of file
+          swctl --display yaml --base-url=http://${oap_host}:${oap_12800}/graphql trace ls | grep -A 5 'index.html' | tail -n1 | awk -F ' ' '{print $2}')
diff --git a/test/e2e-v2/cases/cluster/zk/es/e2e.yaml b/test/e2e-v2/cases/cluster/zk/es/e2e.yaml
index 89dedd8..f7b4fee 100644
--- a/test/e2e-v2/cases/cluster/zk/es/e2e.yaml
+++ b/test/e2e-v2/cases/cluster/zk/es/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/cluster/zk/influxdb/e2e.yaml b/test/e2e-v2/cases/cluster/zk/influxdb/e2e.yaml
index 89dedd8..f7b4fee 100644
--- a/test/e2e-v2/cases/cluster/zk/influxdb/e2e.yaml
+++ b/test/e2e-v2/cases/cluster/zk/influxdb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/cluster/zk/mysql/docker-compose.yml b/test/e2e-v2/cases/cluster/zk/mysql/docker-compose.yml
index 7700e94..4c63056 100644
--- a/test/e2e-v2/cases/cluster/zk/mysql/docker-compose.yml
+++ b/test/e2e-v2/cases/cluster/zk/mysql/docker-compose.yml
@@ -51,7 +51,7 @@ services:
     environment:
       SW_CLUSTER: zookeeper
       SW_STORAGE: mysql
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     depends_on:
       zk:
         condition: service_healthy
@@ -65,7 +65,7 @@ services:
     environment:
       SW_CLUSTER: zookeeper
       SW_STORAGE: mysql
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     depends_on:
       zk:
         condition: service_healthy
diff --git a/test/e2e-v2/cases/cluster/zk/mysql/e2e.yaml b/test/e2e-v2/cases/cluster/zk/mysql/e2e.yaml
index 89dedd8..f7b4fee 100644
--- a/test/e2e-v2/cases/cluster/zk/mysql/e2e.yaml
+++ b/test/e2e-v2/cases/cluster/zk/mysql/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/event/es/e2e.yaml b/test/e2e-v2/cases/event/es/e2e.yaml
index 80d4f81..fe22de0 100644
--- a/test/e2e-v2/cases/event/es/e2e.yaml
+++ b/test/e2e-v2/cases/event/es/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/event/h2/e2e.yaml b/test/e2e-v2/cases/event/h2/e2e.yaml
index 80d4f81..fe22de0 100644
--- a/test/e2e-v2/cases/event/h2/e2e.yaml
+++ b/test/e2e-v2/cases/event/h2/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/event/influxdb/e2e.yaml b/test/e2e-v2/cases/event/influxdb/e2e.yaml
index 80d4f81..fe22de0 100644
--- a/test/e2e-v2/cases/event/influxdb/e2e.yaml
+++ b/test/e2e-v2/cases/event/influxdb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/event/mysql/docker-compose.yml b/test/e2e-v2/cases/event/mysql/docker-compose.yml
index 39f77b5..022e623 100644
--- a/test/e2e-v2/cases/event/mysql/docker-compose.yml
+++ b/test/e2e-v2/cases/event/mysql/docker-compose.yml
@@ -41,7 +41,7 @@ services:
     depends_on:
       mysql:
         condition: service_healthy
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     ports:
     - 11800
     - 12800
diff --git a/test/e2e-v2/cases/event/mysql/e2e.yaml b/test/e2e-v2/cases/event/mysql/e2e.yaml
index 80d4f81..fe22de0 100644
--- a/test/e2e-v2/cases/event/mysql/e2e.yaml
+++ b/test/e2e-v2/cases/event/mysql/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/gateway/e2e.yaml b/test/e2e-v2/cases/gateway/e2e.yaml
index 88fa85c..f4e35f0 100644
--- a/test/e2e-v2/cases/gateway/e2e.yaml
+++ b/test/e2e-v2/cases/gateway/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/go/e2e.yaml b/test/e2e-v2/cases/go/e2e.yaml
index e3669b8..608a16b 100644
--- a/test/e2e-v2/cases/go/e2e.yaml
+++ b/test/e2e-v2/cases/go/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/kafka/log/e2e.yaml b/test/e2e-v2/cases/kafka/log/e2e.yaml
index 28e6f2a..8ab4bbf 100644
--- a/test/e2e-v2/cases/kafka/log/e2e.yaml
+++ b/test/e2e-v2/cases/kafka/log/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/kafka/meter/e2e.yaml b/test/e2e-v2/cases/kafka/meter/e2e.yaml
index e59b7b9..4fff535 100644
--- a/test/e2e-v2/cases/kafka/meter/e2e.yaml
+++ b/test/e2e-v2/cases/kafka/meter/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/kafka/profile/e2e.yaml b/test/e2e-v2/cases/kafka/profile/e2e.yaml
index e08a36f..f4fcec3 100644
--- a/test/e2e-v2/cases/kafka/profile/e2e.yaml
+++ b/test/e2e-v2/cases/kafka/profile/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/kafka/simple-so11y/e2e.yaml b/test/e2e-v2/cases/kafka/simple-so11y/e2e.yaml
index 520c2f0..0c9d3b4 100644
--- a/test/e2e-v2/cases/kafka/simple-so11y/e2e.yaml
+++ b/test/e2e-v2/cases/kafka/simple-so11y/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/log/es/e2e.yaml b/test/e2e-v2/cases/log/es/e2e.yaml
index 7256028..1edeacf 100644
--- a/test/e2e-v2/cases/log/es/e2e.yaml
+++ b/test/e2e-v2/cases/log/es/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/log/fluent-bit/e2e.yaml b/test/e2e-v2/cases/log/fluent-bit/e2e.yaml
index 7256028..1edeacf 100644
--- a/test/e2e-v2/cases/log/fluent-bit/e2e.yaml
+++ b/test/e2e-v2/cases/log/fluent-bit/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/log/h2/e2e.yaml b/test/e2e-v2/cases/log/h2/e2e.yaml
index 7256028..1edeacf 100644
--- a/test/e2e-v2/cases/log/h2/e2e.yaml
+++ b/test/e2e-v2/cases/log/h2/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/log/influxdb/e2e.yaml b/test/e2e-v2/cases/log/influxdb/e2e.yaml
index 7256028..1edeacf 100644
--- a/test/e2e-v2/cases/log/influxdb/e2e.yaml
+++ b/test/e2e-v2/cases/log/influxdb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/log/mysql/docker-compose.yml b/test/e2e-v2/cases/log/mysql/docker-compose.yml
index 8581a92..5b69d27 100644
--- a/test/e2e-v2/cases/log/mysql/docker-compose.yml
+++ b/test/e2e-v2/cases/log/mysql/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       SW_JDBC_URL: jdbc:mysql://mysql:3306/swtest
     ports:
       - 12800
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     networks:
       - e2e
     depends_on:
diff --git a/test/e2e-v2/cases/log/mysql/e2e.yaml b/test/e2e-v2/cases/log/mysql/e2e.yaml
index 7256028..1edeacf 100644
--- a/test/e2e-v2/cases/log/mysql/e2e.yaml
+++ b/test/e2e-v2/cases/log/mysql/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/log/postgres/e2e.yaml b/test/e2e-v2/cases/log/postgres/e2e.yaml
index 7256028..1edeacf 100644
--- a/test/e2e-v2/cases/log/postgres/e2e.yaml
+++ b/test/e2e-v2/cases/log/postgres/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/lua/e2e.yaml b/test/e2e-v2/cases/lua/e2e.yaml
index ddbd1c6..6cfffa7 100644
--- a/test/e2e-v2/cases/lua/e2e.yaml
+++ b/test/e2e-v2/cases/lua/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/meter/e2e.yaml b/test/e2e-v2/cases/meter/e2e.yaml
index b7c3fab..ad8f557 100644
--- a/test/e2e-v2/cases/meter/e2e.yaml
+++ b/test/e2e-v2/cases/meter/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/nodejs/e2e.yaml b/test/e2e-v2/cases/nodejs/e2e.yaml
index 51352be..eb063ee 100644
--- a/test/e2e-v2/cases/nodejs/e2e.yaml
+++ b/test/e2e-v2/cases/nodejs/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/php/e2e.yaml b/test/e2e-v2/cases/php/e2e.yaml
index a5c7026..463909b 100644
--- a/test/e2e-v2/cases/php/e2e.yaml
+++ b/test/e2e-v2/cases/php/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/profile/es/e2e.yaml b/test/e2e-v2/cases/profile/es/e2e.yaml
index 4f25875..107ef28 100644
--- a/test/e2e-v2/cases/profile/es/e2e.yaml
+++ b/test/e2e-v2/cases/profile/es/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/profile/h2/e2e.yaml b/test/e2e-v2/cases/profile/h2/e2e.yaml
index 4f25875..107ef28 100644
--- a/test/e2e-v2/cases/profile/h2/e2e.yaml
+++ b/test/e2e-v2/cases/profile/h2/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/profile/influxdb/e2e.yaml b/test/e2e-v2/cases/profile/influxdb/e2e.yaml
index 4f25875..107ef28 100644
--- a/test/e2e-v2/cases/profile/influxdb/e2e.yaml
+++ b/test/e2e-v2/cases/profile/influxdb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/profile/mysql/docker-compose.yml b/test/e2e-v2/cases/profile/mysql/docker-compose.yml
index 8d0b176..ac4137a 100644
--- a/test/e2e-v2/cases/profile/mysql/docker-compose.yml
+++ b/test/e2e-v2/cases/profile/mysql/docker-compose.yml
@@ -51,7 +51,7 @@ services:
     depends_on:
       mysql:
         condition: service_healthy
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     ports:
     - 12800
 
diff --git a/test/e2e-v2/cases/profile/mysql/e2e.yaml b/test/e2e-v2/cases/profile/mysql/e2e.yaml
index 4f25875..107ef28 100644
--- a/test/e2e-v2/cases/profile/mysql/e2e.yaml
+++ b/test/e2e-v2/cases/profile/mysql/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/python/e2e.yaml b/test/e2e-v2/cases/python/e2e.yaml
index ef193dc..01ec811 100644
--- a/test/e2e-v2/cases/python/e2e.yaml
+++ b/test/e2e-v2/cases/python/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/satellite/native-protocols/e2e.yaml b/test/e2e-v2/cases/satellite/native-protocols/e2e.yaml
index c245b73..20a7afd 100644
--- a/test/e2e-v2/cases/satellite/native-protocols/e2e.yaml
+++ b/test/e2e-v2/cases/satellite/native-protocols/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/simple/auth/e2e.yaml b/test/e2e-v2/cases/simple/auth/e2e.yaml
index eb4b265..e07a456 100644
--- a/test/e2e-v2/cases/simple/auth/e2e.yaml
+++ b/test/e2e-v2/cases/simple/auth/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/simple/jdk/e2e.yaml b/test/e2e-v2/cases/simple/jdk/e2e.yaml
index eb4b265..e07a456 100644
--- a/test/e2e-v2/cases/simple/jdk/e2e.yaml
+++ b/test/e2e-v2/cases/simple/jdk/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/simple/mtls/e2e.yaml b/test/e2e-v2/cases/simple/mtls/e2e.yaml
index eb4b265..e07a456 100644
--- a/test/e2e-v2/cases/simple/mtls/e2e.yaml
+++ b/test/e2e-v2/cases/simple/mtls/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/simple/ssl/e2e.yaml b/test/e2e-v2/cases/simple/ssl/e2e.yaml
index eb4b265..e07a456 100644
--- a/test/e2e-v2/cases/simple/ssl/e2e.yaml
+++ b/test/e2e-v2/cases/simple/ssl/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/so11y/e2e.yaml b/test/e2e-v2/cases/so11y/e2e.yaml
index 5d3b93e..6adde1c 100644
--- a/test/e2e-v2/cases/so11y/e2e.yaml
+++ b/test/e2e-v2/cases/so11y/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/storage/es/e2e.yaml b/test/e2e-v2/cases/storage/es/e2e.yaml
index c86d27e..73f746c 100644
--- a/test/e2e-v2/cases/storage/es/e2e.yaml
+++ b/test/e2e-v2/cases/storage/es/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/storage/h2/e2e.yaml b/test/e2e-v2/cases/storage/h2/e2e.yaml
index c86d27e..73f746c 100644
--- a/test/e2e-v2/cases/storage/h2/e2e.yaml
+++ b/test/e2e-v2/cases/storage/h2/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/storage/influxdb/e2e.yaml b/test/e2e-v2/cases/storage/influxdb/e2e.yaml
index c86d27e..73f746c 100644
--- a/test/e2e-v2/cases/storage/influxdb/e2e.yaml
+++ b/test/e2e-v2/cases/storage/influxdb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/storage/mysql/docker-compose.yml b/test/e2e-v2/cases/storage/mysql/docker-compose.yml
index 075c0ee..7da822d 100644
--- a/test/e2e-v2/cases/storage/mysql/docker-compose.yml
+++ b/test/e2e-v2/cases/storage/mysql/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       SW_JDBC_URL: jdbc:mysql://mysql:3306/swtest
     ports:
       - 12800
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     networks:
       - e2e
     depends_on:
diff --git a/test/e2e-v2/cases/storage/mysql/e2e.yaml b/test/e2e-v2/cases/storage/mysql/e2e.yaml
index c86d27e..73f746c 100644
--- a/test/e2e-v2/cases/storage/mysql/e2e.yaml
+++ b/test/e2e-v2/cases/storage/mysql/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/storage/opensearch/e2e.yaml b/test/e2e-v2/cases/storage/opensearch/e2e.yaml
index c86d27e..73f746c 100644
--- a/test/e2e-v2/cases/storage/opensearch/e2e.yaml
+++ b/test/e2e-v2/cases/storage/opensearch/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/storage/postgres/e2e.yaml b/test/e2e-v2/cases/storage/postgres/e2e.yaml
index c86d27e..73f746c 100644
--- a/test/e2e-v2/cases/storage/postgres/e2e.yaml
+++ b/test/e2e-v2/cases/storage/postgres/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/storage/tidb/docker-compose.yml b/test/e2e-v2/cases/storage/tidb/docker-compose.yml
index 926543a..33c9d44 100644
--- a/test/e2e-v2/cases/storage/tidb/docker-compose.yml
+++ b/test/e2e-v2/cases/storage/tidb/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       SW_DATA_SOURCE_PASSWORD: ""
     ports:
       - 12800
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     networks:
       - e2e
     depends_on:
diff --git a/test/e2e-v2/cases/storage/tidb/e2e.yaml b/test/e2e-v2/cases/storage/tidb/e2e.yaml
index c86d27e..73f746c 100644
--- a/test/e2e-v2/cases/storage/tidb/e2e.yaml
+++ b/test/e2e-v2/cases/storage/tidb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/ttl/es/e2e.yaml b/test/e2e-v2/cases/ttl/es/e2e.yaml
index 424cdd6..3793093 100644
--- a/test/e2e-v2/cases/ttl/es/e2e.yaml
+++ b/test/e2e-v2/cases/ttl/es/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/ttl/influxdb/e2e.yaml b/test/e2e-v2/cases/ttl/influxdb/e2e.yaml
index 424cdd6..3793093 100644
--- a/test/e2e-v2/cases/ttl/influxdb/e2e.yaml
+++ b/test/e2e-v2/cases/ttl/influxdb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/ttl/postgresql/e2e.yaml b/test/e2e-v2/cases/ttl/postgresql/e2e.yaml
index 424cdd6..3793093 100644
--- a/test/e2e-v2/cases/ttl/postgresql/e2e.yaml
+++ b/test/e2e-v2/cases/ttl/postgresql/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/ttl/tidb/docker-compose.yml b/test/e2e-v2/cases/ttl/tidb/docker-compose.yml
index d9bea25..344cd02 100644
--- a/test/e2e-v2/cases/ttl/tidb/docker-compose.yml
+++ b/test/e2e-v2/cases/ttl/tidb/docker-compose.yml
@@ -41,7 +41,7 @@ services:
       SW_CORE_METRICS_DATA_TTL: 7
       SW_JDBC_URL: "jdbc:mysql://tidb:4000/test"
       SW_DATA_SOURCE_PASSWORD: ""
-    entrypoint: ['sh', '-c', 'apk add --no-cache bash && /download-mysql.sh && /skywalking/docker-entrypoint.sh']
+    entrypoint: ['sh', '-c', '/download-mysql.sh && /skywalking/docker-entrypoint.sh']
     depends_on:
       tidb:
         condition: service_healthy
diff --git a/test/e2e-v2/cases/ttl/tidb/e2e.yaml b/test/e2e-v2/cases/ttl/tidb/e2e.yaml
index 424cdd6..3793093 100644
--- a/test/e2e-v2/cases/ttl/tidb/e2e.yaml
+++ b/test/e2e-v2/cases/ttl/tidb/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/vm/prometheus-node-exporter/e2e.yaml b/test/e2e-v2/cases/vm/prometheus-node-exporter/e2e.yaml
index 3288d67..2bb50d1 100644
--- a/test/e2e-v2/cases/vm/prometheus-node-exporter/e2e.yaml
+++ b/test/e2e-v2/cases/vm/prometheus-node-exporter/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/cases/vm/zabbix/e2e.yaml b/test/e2e-v2/cases/vm/zabbix/e2e.yaml
index 96cd794..3c031ae 100644
--- a/test/e2e-v2/cases/vm/zabbix/e2e.yaml
+++ b/test/e2e-v2/cases/vm/zabbix/e2e.yaml
@@ -18,7 +18,7 @@
 setup:
   env: compose
   file: docker-compose.yml
-  timeout: 1200
+  timeout: 20m
   init-system-environment: ../../../script/env
   steps:
     - name: install yq
diff --git a/test/e2e-v2/script/docker-compose/base-compose.yml b/test/e2e-v2/script/docker-compose/base-compose.yml
index 39db0b0..26e6ccc 100644
--- a/test/e2e-v2/script/docker-compose/base-compose.yml
+++ b/test/e2e-v2/script/docker-compose/base-compose.yml
@@ -37,7 +37,7 @@ services:
       SW_CONFIG_ETCD_ENDPOINTS: http://etcd:2379
       SW_CLUSTER_ETCD_ENDPOINTS: http://etcd:2379
     healthcheck:
-      test: ["CMD", "sh", "-c", "nc -zn 127.0.0.1 11800"]
+      test: ["CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/11800"]
       interval: 5s
       timeout: 60s
       retries: 120
diff --git a/test/e2e-v2/script/prepare/setup-oap/download-mysql.sh b/test/e2e-v2/script/prepare/setup-oap/download-mysql.sh
index 3d5c87d..c98ab50 100755
--- a/test/e2e-v2/script/prepare/setup-oap/download-mysql.sh
+++ b/test/e2e-v2/script/prepare/setup-oap/download-mysql.sh
@@ -17,8 +17,6 @@
 
 set -ex
 
-apk add curl
-
 SW_HOME=/skywalking
 MYSQL_URL="https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.0.13/mysql-connector-java-8.0.13.jar"
 MYSQL_DRIVER="mysql-connector-java-8.0.13.jar"