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/02 06:42:10 UTC

[skywalking-java] branch d updated (7bb384c -> a81dacb)

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

kezhenxu94 pushed a change to branch d
in repository https://gitbox.apache.org/repos/asf/skywalking-java.git.


 discard 7bb384c  Build CLI from Docker instead of source codes, add alpine based Docker image
     new a81dacb  Build CLI from Docker instead of source codes, add alpine based Docker image

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (7bb384c)
            \
             N -- N -- N   refs/heads/d (a81dacb)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.md | 1 +
 1 file changed, 1 insertion(+)

[skywalking-java] 01/01: Build CLI from Docker instead of source codes, add alpine based Docker image

Posted by ke...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a81dacbeb90def1a6cf8abfe1405b4e6b6982d9e
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Tue Nov 2 14:36:59 2021 +0800

    Build CLI from Docker instead of source codes, add alpine based Docker image
---
 CHANGES.md                                 |  1 +
 Dockerfile                                 | 81 ++----------------------------
 Makefile                                   | 35 +++++++++----
 docs/en/contribution/release-java-agent.md |  2 +-
 4 files changed, 30 insertions(+), 89 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index bc3cedb..2054625 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -7,6 +7,7 @@ Release Notes.
 
 * Support `Transaction` and fix duplicated methods enhancements for `jedis-2.x` plugin.
 * Add ConsumerWrapper/FunctionWrapper to support CompletableFuture.x.thenAcceptAsync/thenApplyAsync.
+* Build CLI from Docker instead of source codes, add alpine based Docker image.
 
 #### Documentation
 
diff --git a/Dockerfile b/Dockerfile
index bf7a328..bbedf37 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,84 +16,9 @@
 
 ARG BASE_IMAGE='adoptopenjdk/openjdk8:alpine-jre'
 
-FROM $BASE_IMAGE as cli
+ARG SKYWALKING_CLI_VERSION
 
-WORKDIR /skywalking
-
-ARG SKYWALKING_CLI_VERSION=0.7.0
-ENV SKYWALKING_CLI_TGZ=skywalking-cli-$SKYWALKING_CLI_VERSION-bin.tgz
-ENV SKYWALKING_CLI_ASC=${SKYWALKING_CLI_TGZ}.asc
-ENV SKYWALKING_CLI_SHA512=${SKYWALKING_CLI_TGZ}.sha512
-
-ENV SKYWALKING_CLI_TGZ_URLS \
-        https://www.apache.org/dyn/closer.cgi?action=download&filename=skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_TGZ \
-        # if the version is outdated, we might have to pull from the dist/archive :/
-	    https://www-us.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_TGZ \
-	    https://www.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_TGZ \
-	    https://archive.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_TGZ
-
-ENV SKYWALKING_CLI_ASC_URLS \
-        https://www.apache.org/dyn/closer.cgi?action=download&filename=skywalking/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_ASC \
-        # if the version is outdated, we might have to pull from the dist/archive :/
-	    https://www-us.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_ASC \
-	    https://www.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_ASC \
-	    https://archive.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_ASC
-
-ENV SKYWALKING_CLI_SHA512_URLS \
-        https://www.apache.org/dyn/closer.cgi?action=download&filename=skywalking/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_SHA512 \
-        # if the version is outdated, we might have to pull from the dist/archive :/
-	    https://www-us.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_SHA512 \
-	    https://www.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_SHA512 \
-	    https://archive.apache.org/dist/skywalking/cli/$SKYWALKING_CLI_VERSION/$SKYWALKING_CLI_SHA512
-
-
-RUN set -eux; \
-	\
-	apk add --no-cache --virtual .fetch-deps \
-		gnupg \
-		ca-certificates \
-		openssl \
-	; \
-	\
-	wget --timeout=20 -O KEYS https://downloads.apache.org/skywalking/KEYS; \
-	gpg --import KEYS; \
-	\
-	success=; \
-	for url in $SKYWALKING_CLI_TGZ_URLS; do \
-		if wget --timeout=20  -O ${SKYWALKING_CLI_TGZ} "$url"; then \
-			success=1; \
-			break; \
-		fi; \
-	done; \
-	[ -n "$success" ]; \
-	\
-	success=; \
-	for url in $SKYWALKING_CLI_SHA512_URLS; do \
-		if wget --timeout=20  -O ${SKYWALKING_CLI_SHA512} "$url"; then \
-			success=1; \
-			break; \
-		fi; \
-	done; \
-	[ -n "$success" ]; \
-	\
-	sha512sum -c ${SKYWALKING_CLI_SHA512}; \
-	\
-	success=; \
-	for url in $SKYWALKING_CLI_ASC_URLS; do \
-		if wget --timeout=20  -O ${SKYWALKING_CLI_ASC} "$url"; then \
-			success=1; \
-			break; \
-		fi; \
-	done; \
-	[ -n "$success" ]; \
-	\
-	gpg --batch --verify ${SKYWALKING_CLI_ASC} ${SKYWALKING_CLI_TGZ}; \
-	tar -xvf ${SKYWALKING_CLI_TGZ}; \
-    mkdir "bin/"; \
-	mv skywalking-cli-${SKYWALKING_CLI_VERSION}-bin/bin/swctl-${SKYWALKING_CLI_VERSION}-linux-amd64 bin/swctl; \
-	chmod 755 bin/*; \
-	command -v gpgconf && gpgconf --kill all || :; \
-	ls -la .;
+FROM apache/skywalking-cli:$SKYWALKING_CLI_VERSION as cli
 
 FROM $BASE_IMAGE
 
@@ -109,4 +34,4 @@ WORKDIR /skywalking
 
 ADD $DIST /skywalking/agent
 
-COPY --from=cli /skywalking/bin/swctl /usr/bin/swctl
+COPY --from=cli /swctl /usr/bin/swctl
diff --git a/Makefile b/Makefile
index 12b1f7c..6ec71f9 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@ HUB ?= skywalking
 NAME ?= skywalking-java
 TAG ?= latest
 AGENT_PACKAGE ?= skywalking-agent
+CLI_VERSION ?= 0.9.0 # CLI version inside OAP image should always use an Apache released artifact.
 
 .PHONY: build
 build:
@@ -33,21 +34,35 @@ dist: build
 
 # Docker build
 
-JAVA_VERSIONS := 8 11 12 13 14 15 16
-JAVA_VERSION = $(word 1, $@)
+base.adopt := java8 java11 java12 java13 java14 java15 java16
+base.temurin := java17
 
-.PHONY: $(JAVA_VERSIONS:%=java%)
-$(JAVA_VERSIONS:%=docker.java%): skywalking-agent
-	docker build --no-cache --build-arg BASE_IMAGE=adoptopenjdk/openjdk$(JAVA_VERSION:docker.java%=%):alpine-jre --build-arg DIST=$(AGENT_PACKAGE) . -t $(HUB)/$(NAME):$(TAG)-$(JAVA_VERSION:docker.%=%)
+base.all := alpine $(base.adopt) $(base.temurin)
+base.each = $(word 1, $@)
+
+base.image.alpine := alpine:3
+base.image.java8 := adoptopenjdk/openjdk8:alpine-jre
+base.image.java11 := adoptopenjdk/openjdk11:alpine-jre
+base.image.java12 := adoptopenjdk/openjdk12:alpine-jre
+base.image.java13 := adoptopenjdk/openjdk13:alpine-jre
+base.image.java14 := adoptopenjdk/openjdk14:alpine-jre
+base.image.java15 := adoptopenjdk/openjdk15:alpine-jre
+base.image.java16 := adoptopenjdk/openjdk16:alpine-jre
+base.image.java17 := eclipse-temurin:17-alpine
+
+.PHONY: $(base.all)
+$(base.all:%=docker.%): BASE_IMAGE=$($(base.each:docker.%=base.image.%))
+$(base.all:%=docker.%): docker.%: skywalking-agent
+	docker build --no-cache --build-arg BASE_IMAGE=$(BASE_IMAGE) --build-arg DIST=$(AGENT_PACKAGE) --build-arg SKYWALKING_CLI_VERSION=$(CLI_VERSION) . -t $(HUB)/$(NAME):$(TAG)-$(base.each:docker.%=%)
 
 .PHONY: docker
-docker: $(JAVA_VERSIONS:%=docker.java%)
+docker: $(base.all:%=docker.%)
 
 # Docker push
 
-.PHONY: $(JAVA_VERSIONS:%=docker.push.java%)
-$(JAVA_VERSIONS:%=docker.push.java%): $(JAVA_VERSIONS:%=docker.java%)
-	docker push $(HUB)/$(NAME):$(TAG)-$(JAVA_VERSION:docker.push.%=%)
+.PHONY: $(base.all:%=docker.push.%)
+$(base.all:%=docker.push.%): docker.push.%: docker.%
+	docker push $(HUB)/$(NAME):$(TAG)-$(base.each:docker.push.%=%)
 
 .PHONY: docker.push
-docker.push: $(JAVA_VERSIONS:%=docker.java%)
+docker.push: $(base.all:%=docker.%)
diff --git a/docs/en/contribution/release-java-agent.md b/docs/en/contribution/release-java-agent.md
index 2d14953..032cada 100644
--- a/docs/en/contribution/release-java-agent.md
+++ b/docs/en/contribution/release-java-agent.md
@@ -276,7 +276,7 @@ export NAME=skywalking-java-agent
 export HUB=apache
 export TAG=$SW_VERSION
 
-make docker.push.java8 docker.push.java11
+make docker.push.alpine docker.push.java8 docker.push.java11
 ```
 
 ## Clean up the old releases