Migrate base Docker image from JDK to JRE and remove unused classes (#21)
This commit is contained in:
parent
f191953689
commit
61892085f9
|
|
@ -26,21 +26,11 @@ env:
|
|||
HUB: ghcr.io/apache/skywalking-java
|
||||
|
||||
jobs:
|
||||
build:
|
||||
build-tar:
|
||||
if: github.repository == 'apache/skywalking-java'
|
||||
name: Build and Push Docker
|
||||
name: Build Agent
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
matrix:
|
||||
java-version: [ 8, 9, 10, 11, 12, 13, 14, 15, 16 ]
|
||||
env:
|
||||
BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.java-version }}:alpine
|
||||
NAME: jdk-${{ matrix.java-version }}
|
||||
TAG: ${{ github.sha }}
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
|
|
@ -51,6 +41,37 @@ jobs:
|
|||
path: ~/.m2/repository
|
||||
key: ${{ runner.os }}-maven-publish-docker-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: ${{ runner.os }}-maven-publish-docker-
|
||||
- name: Build Agent
|
||||
run: make build
|
||||
- uses: actions/upload-artifact@v2
|
||||
name: Upload Agent
|
||||
with:
|
||||
name: skywalking-agent
|
||||
path: skywalking-agent
|
||||
|
||||
build-docker:
|
||||
if: github.repository == 'apache/skywalking-java'
|
||||
needs: [ build-tar ]
|
||||
name: Build and Push Docker
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
matrix:
|
||||
java-version: [ 8, 11, 12, 13, 14, 15, 16 ]
|
||||
env:
|
||||
BASE_IMAGE: adoptopenjdk/openjdk${{ matrix.java-version }}:alpine
|
||||
TAG: ${{ github.sha }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: skywalking-agent
|
||||
path: skywalking-agent
|
||||
- name: Log in to the Container registry
|
||||
uses: docker/login-action@v1.10.0
|
||||
with:
|
||||
|
|
@ -58,7 +79,4 @@ jobs:
|
|||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Build docker image
|
||||
run: |
|
||||
make docker.push || make docker.push
|
||||
docker tag $HUB/$NAME:$TAG $HUB/$NAME:latest
|
||||
docker push $HUB/$NAME:latest
|
||||
run: make docker.push.java${{ matrix.java-version }} || make docker.push.java${{ matrix.java-version }}
|
||||
|
|
|
|||
89
Dockerfile
89
Dockerfile
|
|
@ -14,26 +14,99 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
ARG BASE_IMAGE='adoptopenjdk/openjdk8:alpine'
|
||||
ARG BASE_IMAGE='adoptopenjdk/openjdk8:alpine-jre'
|
||||
|
||||
FROM alpine AS cli
|
||||
FROM $BASE_IMAGE as cli
|
||||
|
||||
WORKDIR /skywalking/bin
|
||||
WORKDIR /skywalking
|
||||
|
||||
ARG CLI_VERSION=0.6.0
|
||||
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
|
||||
|
||||
ADD https://archive.apache.org/dist/skywalking/cli/${CLI_VERSION}/skywalking-cli-${CLI_VERSION}-bin.tgz /
|
||||
RUN tar -zxf /skywalking-cli-${CLI_VERSION}-bin.tgz -C / ; \
|
||||
mv /skywalking-cli-${CLI_VERSION}-bin/bin/swctl-${CLI_VERSION}-linux-amd64 /skywalking/bin/swctl
|
||||
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 $BASE_IMAGE
|
||||
|
||||
ARG DIST=skywalking-agent
|
||||
|
||||
RUN apk add --no-cache openssl
|
||||
|
||||
LABEL maintainer="kezhenxu94@apache.org"
|
||||
|
||||
ENV JAVA_TOOL_OPTIONS=-javaagent:/skywalking/agent/skywalking-agent.jar
|
||||
|
||||
WORKDIR /skywalking
|
||||
|
||||
ADD skywalking-agent /skywalking/agent
|
||||
ADD $DIST /skywalking/agent
|
||||
|
||||
COPY --from=cli /skywalking/bin/swctl /usr/bin/swctl
|
||||
|
|
|
|||
35
Makefile
35
Makefile
|
|
@ -19,22 +19,11 @@ SHELL := /bin/bash -o pipefail
|
|||
HUB ?= skywalking
|
||||
NAME ?= skywalking-java
|
||||
TAG ?= latest
|
||||
AGENT_PACKAGE = skywalking-agent
|
||||
|
||||
BASE_IMAGE ?= adoptopenjdk/openjdk8:alpine
|
||||
SKIP_TEST ?= false
|
||||
AGENT_PACKAGE ?= skywalking-agent
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
./mvnw --batch-mode clean package -Dmaven.test.skip=$(SKIP_TEST)
|
||||
|
||||
.PHONY: docker
|
||||
docker: build
|
||||
docker build --no-cache --build-arg BASE_IMAGE=$(BASE_IMAGE) . -t $(HUB)/$(NAME):$(TAG)
|
||||
|
||||
.PHONY: docker.push
|
||||
docker.push: docker
|
||||
docker push $(HUB)/$(NAME):$(TAG)
|
||||
./mvnw --batch-mode clean package -Dmaven.test.skip=true
|
||||
|
||||
.PHONY: dist
|
||||
dist: build
|
||||
|
|
@ -42,3 +31,23 @@ dist: build
|
|||
gpg --armor --detach-sig apache-skywalking-java-agent-$(TAG).tgz
|
||||
shasum -a 512 apache-skywalking-java-agent-$(TAG).tgz > apache-skywalking-java-agent-$(TAG).tgz.sha512
|
||||
|
||||
# Docker build
|
||||
|
||||
JAVA_VERSIONS := 8 11 12 13 14 15 16
|
||||
JAVA_VERSION = $(word 1, $@)
|
||||
|
||||
.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.%=%)
|
||||
|
||||
.PHONY: docker
|
||||
docker: $(JAVA_VERSIONS:%=docker.java%)
|
||||
|
||||
# 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: docker.push
|
||||
docker.push: $(JAVA_VERSIONS:%=docker.java%)
|
||||
|
|
|
|||
|
|
@ -1,95 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.apache.skywalking.apm.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* Group patterns use {@link java.util.regex.Pattern} as core, could group the input strings to matched group or return
|
||||
* original string.
|
||||
*/
|
||||
@ToString
|
||||
public class StringFormatGroup {
|
||||
private final List<PatternRule> rules;
|
||||
|
||||
public StringFormatGroup() {
|
||||
rules = new ArrayList<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a new match rule. The rule will follow the order of being added.
|
||||
*
|
||||
* @param name will be used when ruleRegex matched.
|
||||
* @param ruleRegex to match target string.
|
||||
*/
|
||||
public void addRule(String name, String ruleRegex) {
|
||||
for (PatternRule rule : rules) {
|
||||
if (rule.name.equals(name)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
PatternRule rule = new PatternRule(name, ruleRegex);
|
||||
rules.add(rule);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the string based on rules.
|
||||
*
|
||||
* @param string to be formatted
|
||||
* @return matched rule name, or original string.
|
||||
*/
|
||||
public FormatResult format(String string) {
|
||||
for (PatternRule rule : rules) {
|
||||
if (rule.getPattern().matcher(string).matches()) {
|
||||
return new FormatResult(true, rule.getName(), string);
|
||||
}
|
||||
}
|
||||
return new FormatResult(false, string, string);
|
||||
}
|
||||
|
||||
public void sortRules(Comparator<? super PatternRule> comparator) {
|
||||
rules.sort(comparator);
|
||||
}
|
||||
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public static class FormatResult {
|
||||
private final boolean match;
|
||||
private final String name;
|
||||
private final String replacedName;
|
||||
}
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
public static class PatternRule {
|
||||
private final String name;
|
||||
private final Pattern pattern;
|
||||
|
||||
private PatternRule(String name, String ruleRegex) {
|
||||
this.name = name;
|
||||
pattern = Pattern.compile(ruleRegex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,138 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.apache.skywalking.apm.util;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.openjdk.jmh.annotations.Benchmark;
|
||||
import org.openjdk.jmh.annotations.BenchmarkMode;
|
||||
import org.openjdk.jmh.annotations.Mode;
|
||||
import org.openjdk.jmh.annotations.OutputTimeUnit;
|
||||
import org.openjdk.jmh.runner.Runner;
|
||||
import org.openjdk.jmh.runner.RunnerException;
|
||||
import org.openjdk.jmh.runner.options.Options;
|
||||
import org.openjdk.jmh.runner.options.OptionsBuilder;
|
||||
|
||||
public class StringFormatGroupTest {
|
||||
@Benchmark
|
||||
@Test
|
||||
public void testMatch() {
|
||||
StringFormatGroup group = new StringFormatGroup();
|
||||
group.addRule("/name/*/add", "/name/.+/add");
|
||||
Assert.assertEquals("/name/*/add", group.format("/name/test/add").getName());
|
||||
|
||||
group = new StringFormatGroup();
|
||||
group.addRule("/name/*/add/{orderId}", "/name/.+/add/.*");
|
||||
Assert.assertEquals("/name/*/add/{orderId}", group.format("/name/test/add/12323").getName());
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
@Test
|
||||
public void test100Rule() {
|
||||
StringFormatGroup group = new StringFormatGroup();
|
||||
group.addRule("/name/*/add/{orderId}", "/name/.+/add/.*");
|
||||
for (int i = 0; i < 100; i++) {
|
||||
group.addRule("/name/*/add/{orderId}" + "/" + 1, "/name/.+/add/.*" + "/abc");
|
||||
}
|
||||
Assert.assertEquals("/name/*/add/{orderId}", group.format("/name/test/add/12323").getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* The report below shows this pattern match performance is much about rule numbers. This is a single thread test.
|
||||
*/
|
||||
@BenchmarkMode(Mode.AverageTime)
|
||||
@OutputTimeUnit(TimeUnit.MICROSECONDS)
|
||||
public void performanceBenchmark() throws RunnerException {
|
||||
Options opt = new OptionsBuilder().include(StringFormatGroupTest.class.getSimpleName())
|
||||
.forks(1)
|
||||
.warmupIterations(0)
|
||||
.measurementIterations(5)
|
||||
.build();
|
||||
|
||||
new Runner(opt).run();
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* # JMH version: 1.21
|
||||
* # VM version: JDK 1.8.0_91, Java HotSpot(TM) 64-Bit Server VM, 25.91-b14
|
||||
* # VM invoker: /Users/wusheng/Documents/applications/jdk1.8.0_91.jdk/Contents/Home/jre/bin/java
|
||||
* # VM options: -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=54841:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8
|
||||
* # Warmup: <none>
|
||||
* # Measurement: 5 iterations, 10 s each
|
||||
* # Timeout: 10 min per iteration
|
||||
* # Threads: 1 thread, will synchronize iterations
|
||||
* # Benchmark mode: Throughput, ops/time
|
||||
* # Benchmark: org.apache.skywalking.apm.util.StringFormatGroupTest.test100Rule
|
||||
*
|
||||
* # Run progress: 0.00% complete, ETA 00:01:40
|
||||
* # Fork: 1 of 1
|
||||
* Iteration 1: 32016.496 ops/s
|
||||
* Iteration 2: 36703.873 ops/s
|
||||
* Iteration 3: 37121.543 ops/s
|
||||
* Iteration 4: 36898.225 ops/s
|
||||
* Iteration 5: 34712.564 ops/s
|
||||
*
|
||||
*
|
||||
* Result "org.apache.skywalking.apm.util.StringFormatGroupTest.test100Rule":
|
||||
* 35490.540 ±(99.9%) 8345.368 ops/s [Average]
|
||||
* (min, avg, max) = (32016.496, 35490.540, 37121.543), stdev = 2167.265
|
||||
* CI (99.9%): [27145.173, 43835.908] (assumes normal distribution)
|
||||
*
|
||||
*
|
||||
* # JMH version: 1.21
|
||||
* # VM version: JDK 1.8.0_91, Java HotSpot(TM) 64-Bit Server VM, 25.91-b14
|
||||
* # VM invoker: /Users/wusheng/Documents/applications/jdk1.8.0_91.jdk/Contents/Home/jre/bin/java
|
||||
* # VM options: -ea -Didea.test.cyclic.buffer.size=1048576 -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=54841:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8
|
||||
* # Warmup: <none>
|
||||
* # Measurement: 5 iterations, 10 s each
|
||||
* # Timeout: 10 min per iteration
|
||||
* # Threads: 1 thread, will synchronize iterations
|
||||
* # Benchmark mode: Throughput, ops/time
|
||||
* # Benchmark: org.apache.skywalking.apm.util.StringFormatGroupTest.testMatch
|
||||
*
|
||||
* # Run progress: 50.00% complete, ETA 00:00:50
|
||||
* # Fork: 1 of 1
|
||||
* Iteration 1: 1137158.205 ops/s
|
||||
* Iteration 2: 1192936.161 ops/s
|
||||
* Iteration 3: 1218773.403 ops/s
|
||||
* Iteration 4: 1222966.452 ops/s
|
||||
* Iteration 5: 1235609.354 ops/s
|
||||
*
|
||||
*
|
||||
* Result "org.apache.skywalking.apm.util.StringFormatGroupTest.testMatch":
|
||||
* 1201488.715 ±(99.9%) 150813.461 ops/s [Average]
|
||||
* (min, avg, max) = (1137158.205, 1201488.715, 1235609.354), stdev = 39165.777
|
||||
* CI (99.9%): [1050675.254, 1352302.176] (assumes normal distribution)
|
||||
*
|
||||
*
|
||||
* # Run complete. Total time: 00:01:41
|
||||
*
|
||||
* REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on
|
||||
* why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial
|
||||
* experiments, perform baseline and negative tests that provide experimental control, make sure
|
||||
* the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.
|
||||
* Do not assume the numbers tell you what you want them to tell.
|
||||
*
|
||||
* Benchmark Mode Cnt Score Error Units
|
||||
* StringFormatGroupTest.test100Rule thrpt 5 35490.540 ± 8345.368 ops/s
|
||||
* StringFormatGroupTest.testMatch thrpt 5 1201488.715 ± 150813.461 ops/s
|
||||
*
|
||||
*/
|
||||
}
|
||||
|
|
@ -267,6 +267,22 @@ SkyWalking Resources:
|
|||
- Apache SkyWalking Team
|
||||
```
|
||||
|
||||
## Release Docker images
|
||||
|
||||
```shell
|
||||
export SW_VERSION=x.y.z
|
||||
git clone --depth 1 --branch v$SW_VERSION https://github.com/apache/skywalking-java.git
|
||||
cd skywalking-java
|
||||
|
||||
svn co https://dist.apache.org/repos/dist/release/skywalking-java/$SW_VERSION release # (1)
|
||||
|
||||
export SW_OUT=release
|
||||
export HUB=apache
|
||||
export TAG=$SW_VERSION
|
||||
export DIST=<the binary package name inside (1), e.g. apache-skywalking-apm-8.8.0.tar.gz>
|
||||
make docker.push -j 7
|
||||
```
|
||||
|
||||
## Clean up the old releases
|
||||
Once the latest release has been published, you should clean up the old releases from the mirror system.
|
||||
1. Update the download links (source, dist, asc, and sha512) on the website to the archive repo (https://archive.apache.org/dist/skywalking).
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
# Docker
|
||||
# Apache SkyWalking Agent Containerized Scenarios
|
||||
|
||||
This section introduces how to build your Java application image on top of this image.
|
||||
**Docker images are not official ASF releases but provided for convenience. Recommended usage is always to build the
|
||||
source**
|
||||
|
||||
This image only hosts the pre-built SkyWalking Java agent jars, and provides some convenient configurations for
|
||||
containerized scenarios.
|
||||
|
||||
# How to use this image
|
||||
|
||||
## Docker
|
||||
|
||||
```dockerfile
|
||||
FROM apache/skywalking-java-agent:8.5.0-jdk8
|
||||
|
|
@ -11,9 +19,7 @@ FROM apache/skywalking-java-agent:8.5.0-jdk8
|
|||
You can start your Java application with `CMD` or `ENTRYPOINT`, but you don't need to care about the Java options to
|
||||
enable SkyWalking agent, it should be adopted automatically.
|
||||
|
||||
# Kubernetes
|
||||
|
||||
This section introduces how to use this image as sidecar of Kubernetes service.
|
||||
## Kubernetes
|
||||
|
||||
In Kubernetes scenarios, you can also use this agent image as a sidecar.
|
||||
|
||||
|
|
@ -47,4 +53,3 @@ spec:
|
|||
- name: JAVA_TOOL_OPTIONS
|
||||
value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue