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>