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/09/08 12:53:17 UTC

[skywalking] 01/02: Docker

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

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

commit 5e5aa64d75bc4515c23097f294716b044a512f0b
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Wed Sep 8 17:41:14 2021 +0800

    Docker
---
 Makefile                                           |   6 +-
 .../apm/util/PropertyPlaceholderHelper.java        |  11 +--
 docker/oap/Dockerfile.oap                          | 108 ++++++++++++++++-----
 docker/oap/log4j2.xml                              |  10 --
 4 files changed, 93 insertions(+), 42 deletions(-)

diff --git a/Makefile b/Makefile
index 51f13ca..2d79471 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,9 @@ export SW_ROOT := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 
 export SW_OUT:=${SW_ROOT}/dist
 
-SKIP_TEST?=false
+CLI_CODE_VERSION ?= 0.7.0
+
+SKIP_TEST ?= false
 DIST_NAME := apache-skywalking-apm-bin
 
 init:
@@ -57,7 +59,7 @@ 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_NAME=$(DIST_NAME)
+BUILD_ARGS := $(BUILD_ARGS) --build-arg DIST_NAME=$(DIST_NAME) --build-arg CLI_CODE_VERSION=$(CLI_CODE_VERSION)
 
 docker.oap: $(SW_OUT)/$(DIST_NAME).tar.gz
 docker.oap: $(SW_ROOT)/docker/oap/Dockerfile.oap
diff --git a/apm-commons/apm-util/src/main/java/org/apache/skywalking/apm/util/PropertyPlaceholderHelper.java b/apm-commons/apm-util/src/main/java/org/apache/skywalking/apm/util/PropertyPlaceholderHelper.java
index c12661c..50c4a8e 100644
--- a/apm-commons/apm-util/src/main/java/org/apache/skywalking/apm/util/PropertyPlaceholderHelper.java
+++ b/apm-commons/apm-util/src/main/java/org/apache/skywalking/apm/util/PropertyPlaceholderHelper.java
@@ -63,7 +63,7 @@ public enum PropertyPlaceholderHelper {
             throw new UnsupportedOperationException("'placeholderPrefix or placeholderSuffix' must not be null");
         }
 
-        final Map<String, String> wellKnownSimplePrefixes = new HashMap<String, String>(4);
+        final Map<String, String> wellKnownSimplePrefixes = new HashMap<>(4);
 
         wellKnownSimplePrefixes.put("}", "{");
         wellKnownSimplePrefixes.put("]", "[");
@@ -90,12 +90,9 @@ public enum PropertyPlaceholderHelper {
      * @return the supplied value with placeholders replaced inline
      */
     public String replacePlaceholders(String value, final Properties properties) {
-        return replacePlaceholders(value, new PlaceholderResolver() {
-            @Override
-            public String resolvePlaceholder(String placeholderName) {
-                return getConfigValue(placeholderName, properties);
-            }
-        });
+        return replacePlaceholders(value,
+                                   placeholderName -> getConfigValue(placeholderName, properties)
+        );
     }
 
     private String getConfigValue(String key, final Properties properties) {
diff --git a/docker/oap/Dockerfile.oap b/docker/oap/Dockerfile.oap
index dd44a66..016fe0a 100644
--- a/docker/oap/Dockerfile.oap
+++ b/docker/oap/Dockerfile.oap
@@ -16,29 +16,90 @@
 
 ARG BASE_IMAGE='adoptopenjdk/openjdk11:alpine'
 
-FROM golang:1.14 AS cli
-
-ARG COMMIT_HASH=9f267876493943716434fdaa30047a14c0b5b2d9
-ARG CLI_CODE=${COMMIT_HASH}.tar.gz
-ARG CLI_CODE_URL=https://github.com/apache/skywalking-cli/archive/${CLI_CODE}
-
-ENV CGO_ENABLED=0
-ENV GO111MODULE=on
-
-WORKDIR /cli
-
-ADD ${CLI_CODE_URL} .
-RUN tar -xf ${CLI_CODE} --strip 1
-RUN rm ${CLI_CODE}
-
-RUN mkdir -p /skywalking/bin/
-RUN make linux && mv bin/swctl-latest-linux-amd64 /skywalking/bin/swctl
+FROM $BASE_IMAGE as cli
+
+WORKDIR /skywalking
+
+ENV 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}; \
+	tar -xvf ${SKYWALKING_CLI_TGZ}; \
+    mkdir "${SKYWALKING_HOME}/bin/"; \
+	mv skywalking-cli-${SKYWALKING_CLI_VERSION}-bin/bin/swctl-${SKYWALKING_CLI_VERSION}-linux-amd64 ${SKYWALKING_HOME}/bin/swctl; \
+	chmod 755 ${SKYWALKING_HOME}/bin/*; \
+	command -v gpgconf && gpgconf --kill all || :; \
+	ls -la ${SKYWALKING_HOME};
 
 FROM $BASE_IMAGE
 
-ENV JAVA_OPTS=" -Xms256M " \
-    SW_CLUSTER="standalone" \
-    SW_STORAGE="h2"
+WORKDIR /skywalking
+
+ENV JAVA_OPTS=" -Xms2G "
 
 ARG DIST_NAME
 
@@ -48,16 +109,17 @@ RUN set -ex; \
     tar -xzf "$DIST_NAME.tar.gz"; \
     rm -rf "$DIST_NAME.tar.gz"; \
     rm -rf "$DIST_NAME/config/log4j2.xml"; \
-    rm -rf "$DIST_NAME/bin"; rm -rf "$DIST_NAME/webapp"; rm -rf "$DIST_NAME/agent"; \
+    rm -rf "$DIST_NAME/bin"; \
+    rm -rf "$DIST_NAME/webapp"; \
+    rm -rf "$DIST_NAME/agent"; \
     mkdir "$DIST_NAME/bin"; \
     mv "$DIST_NAME" skywalking;
 
-WORKDIR skywalking
-
 COPY --from=cli /skywalking/bin/swctl ./bin
 
 COPY log4j2.xml config/
 COPY docker-entrypoint.sh .
+
 RUN mkdir ext-config; \
     mkdir ext-libs;
 
diff --git a/docker/oap/log4j2.xml b/docker/oap/log4j2.xml
index 2758ba6..eab9c37 100644
--- a/docker/oap/log4j2.xml
+++ b/docker/oap/log4j2.xml
@@ -24,16 +24,6 @@
         </Console>
     </Appenders>
     <Loggers>
-        <logger name="org.eclipse.jetty" level="INFO"/>
-        <logger name="org.apache.zookeeper" level="INFO"/>
-        <logger name="io.grpc.netty" level="INFO"/>
-        <logger name="org.apache.skywalking.oap.meter.analyzer" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.fetcher.prometheus" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.receiver.envoy.als" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.storage.plugin.elasticsearch" level="DEBUG"/>
-        <logger name="org.apache.skywalking.oap.server.core.storage.ttl" level="DEBUG"/>
-        <logger name="org.apache.skywalking.library.elasticsearch" level="DEBUG"/>
         <Root level="INFO">
             <AppenderRef ref="Console"/>
         </Root>