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