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:41:28 UTC

[skywalking-java] branch d created (now 7bb384c)

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.


      at 7bb384c  Build CLI from Docker instead of source codes, add alpine based Docker image

This branch includes the following new commits:

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

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.


[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 7bb384c43ea88bafb63d72548eaaa302bd2cbc51
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
---
 Dockerfile                                 | 81 ++----------------------------
 Makefile                                   | 35 +++++++++----
 docs/en/contribution/release-java-agent.md |  2 +-
 3 files changed, 29 insertions(+), 89 deletions(-)

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