Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to latest docker images, aligning maven version #125

Merged
merged 1 commit into from
Aug 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified .mvn/wrapper/maven-wrapper.jar
Binary file not shown.
6 changes: 4 additions & 2 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,7 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
wrapperVersion=3.3.2
distributionType=bin
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.8/apache-maven-3.9.8-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,55 +36,55 @@ There are some interesting details that apply to all examples:

Here are the example projects you can try:

* [armeria](armeria) `BRAVE_EXAMPLE=armeria docker-compose up`
* [armeria](armeria) `BRAVE_EXAMPLE=armeria docker compose up`
* Runtime: Armeria, SLF4J 1.7, JRE 21
* Trace Instrumentation: [Armeria](https://armeria.dev/), [SLF4J](https://github.com/openzipkin/brave/tree/master/context/slf4j)
* Trace Configuration: [Brave API](https://github.com/openzipkin/brave/tree/master/brave#setup) [Java](armeria/src/main/java/brave/example/HttpTracingFactory.java)
* You can also use Eureka discovery like this:
* `BRAVE_EXAMPLE=armeria docker-compose -f docker-compose.yml -f docker-compose-eureka.yml up`
* `BRAVE_EXAMPLE=armeria docker compose -f docker-compose.yml -f docker-compose-eureka.yml up`

* [armeria-kafka](armeria-kafka) `BRAVE_EXAMPLE=armeria-kafka docker-compose -f docker-compose.yml -f docker-compose-kafka.yml up`
* [armeria-kafka](armeria-kafka) `BRAVE_EXAMPLE=armeria-kafka docker compose -f docker-compose.yml -f docker-compose-kafka.yml up`
* Runtime: Armeria, Kafka Clients and Streams 2.7, SLF4J 1.7, JRE 21
* Trace Instrumentation: [Armeria](https://armeria.dev/), [Kafka Clients](https://github.com/openzipkin/brave/tree/master/instrumentation/kafka-clients), [Kafka Streams](https://github.com/openzipkin/brave/tree/master/instrumentation/kafka-streams), [SLF4J](https://github.com/openzipkin/brave/tree/master/context/slf4j)
* Trace Configuration: [Brave API](https://github.com/openzipkin/brave/tree/master/brave#setup) [Java](armeria/src/main/java/brave/example/HttpTracingFactory.java)

* [jersey2-cassandra3](jersey2-cassandra3) `BRAVE_EXAMPLE=jersey2-cassandra3 docker-compose up`
* [jersey2-cassandra3](jersey2-cassandra3) `BRAVE_EXAMPLE=jersey2-cassandra3 docker compose up`
* Runtime: JaxRS 2, Jersey 2, DataStax Java Driver 3, Apache Cassandra 4, SLF4J 1, JRE 8
* Trace Instrumentation: [Jersey Server](https://github.com/openzipkin/brave/tree/master/instrumentation/jersey-server), [DataStax Java Driver](https://github.com/openzipkin/brave-cassandra/tree/master/cassandra-driver), [Apache Cassandra](https://github.com/openzipkin/brave-cassandra/tree/master/cassandra), [SLF4J](https://github.com/openzipkin/brave/tree/master/context/slf4j)
* Trace Configuration: [Brave API](https://github.com/openzipkin/brave/tree/master/brave#setup) [XML](jersey2-cassandra3/src/main/webapp/WEB-INF/tracing.xml)

* [netty4-grpc](netty4-grpc) `BRAVE_EXAMPLE=netty4-grpc docker-compose up`
* [netty4-grpc](netty4-grpc) `BRAVE_EXAMPLE=netty4-grpc docker compose up`
* Runtime: Netty 4.1, Google gRPC 1.63, SLF4J 1.7, JRE 21
* Trace Instrumentation: [Netty Codec HTTP](https://github.com/openzipkin/brave/tree/master/instrumentation/netty-codec-http), [Google gRPC](https://github.com/openzipkin/brave/tree/master/instrumentation/grpc), [SLF4J](https://github.com/openzipkin/brave/tree/master/context/slf4j)
* Trace Configuration: [Brave API](https://github.com/openzipkin/brave/tree/master/brave#setup) [Java](netty4-grpc/src/main/java/brave/example/TracingConfiguration.java)

* [webflux5-sleuth](webflux5-sleuth) `BRAVE_EXAMPLE=webflux5-sleuth docker-compose up`
* [webflux5-sleuth](webflux5-sleuth) `BRAVE_EXAMPLE=webflux5-sleuth docker compose up`
* Runtime: Spring 5, Reactor Netty 0.9, Spring Boot 2.3, Spring Cloud Sleuth 2.2, Log4J 2.13, JRE 21
* Trace Instrumentation: [WebFlux Server](https://github.com/spring-cloud/spring-cloud-sleuth/blob/2.2.x/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java), [WebFlux Client](https://github.com/spring-cloud/spring-cloud-sleuth/blob/2.2.x/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientBeanPostProcessor.java), [Reactor Context](https://github.com/spring-cloud/spring-cloud-sleuth/blob/2.2.x/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ScopePassingSpanSubscriber.java), [SLF4J](https://github.com/openzipkin/brave/tree/master/context/slf4j)
* Trace Configuration: [Spring Cloud Sleuth](https://github.com/spring-cloud/spring-cloud-sleuth/tree/2.2.x/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig) [Properties](webflux5-sleuth/src/main/resources/application.properties)
* You can also use Eureka discovery like this:
* `BRAVE_EXAMPLE=webflux5-sleuth docker-compose -f docker-compose.yml -f docker-compose-eureka.yml up`
* `BRAVE_EXAMPLE=webflux5-sleuth docker compose -f docker-compose.yml -f docker-compose-eureka.yml up`

* [webflux6-micrometer](webflux6-micrometer) `BRAVE_EXAMPLE=webflux6-micrometer docker-compose up`
* [webflux6-micrometer](webflux6-micrometer) `BRAVE_EXAMPLE=webflux6-micrometer docker compose up`
* Runtime: Spring 6, Reactor Netty, Spring Boot 3, Micrometer, Log4J 2, JRE 21
* Trace Configuration: [Spring Boot Actuator](https://github.com/spring-projects/spring-boot/blob/3.2.x/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/TracingProperties.java)

* [webmvc25-jetty](webmvc25-jetty) `BRAVE_EXAMPLE=webmvc25-jetty docker-compose up`
* [webmvc25-jetty](webmvc25-jetty) `BRAVE_EXAMPLE=webmvc25-jetty docker compose up`
* Runtime: Spring 2.5, Apache HttpClient 4.3, Servlet 2.5, Jetty 7.6, Log4J 1.2, JRE 6
* Trace Instrumentation: [Servlet](https://github.com/openzipkin/brave/tree/master/instrumentation/servlet), [Spring MVC](https://github.com/openzipkin/brave/tree/master/instrumentation/spring-webmvc), [Apache HttpClient](https://github.com/openzipkin/brave/tree/master/instrumentation/httpclient), [Log4J 1.2](https://github.com/openzipkin/brave/tree/master/context/log4j12)
* Trace Configuration: [Brave Spring Beans](https://github.com/openzipkin/brave/tree/master/spring-beans#configuration) [XML](webmvc25-jetty/src/main/webapp/WEB-INF/applicationContext.xml)

* [webmvc3-jetty](webmvc3-jetty) `BRAVE_EXAMPLE=webmvc3-jetty docker-compose up`
* [webmvc3-jetty](webmvc3-jetty) `BRAVE_EXAMPLE=webmvc3-jetty docker compose up`
* Runtime: Spring 3.2, Apache HttpClient 4.3, Servlet 3.0, Jetty 8.1, Log4J 1.2, JRE 7
* Trace Instrumentation: [Servlet](https://github.com/openzipkin/brave/tree/master/instrumentation/servlet), [Spring MVC](https://github.com/openzipkin/brave/tree/master/instrumentation/spring-webmvc), [Spring Web](https://github.com/openzipkin/brave/tree/master/instrumentation/spring-web), [Apache HttpClient](https://github.com/openzipkin/brave/tree/master/instrumentation/httpclient), [Log4J 1.2](https://github.com/openzipkin/brave/tree/master/context/log4j12)
* Trace Configuration: [Brave Spring Beans](https://github.com/openzipkin/brave/tree/master/spring-beans#configuration) [XML](webmvc3-jetty/src/main/webapp/WEB-INF/applicationContext.xml)

* [webmvc4-jetty](webmvc4-jetty) `BRAVE_EXAMPLE=webmvc4-jetty docker-compose up`
* [webmvc4-jetty](webmvc4-jetty) `BRAVE_EXAMPLE=webmvc4-jetty docker compose up`
* Runtime: Spring 4.3, OkHttp 3.12, Jetty 9.2, Servlet 3.1, SLF4J 1.7, JRE 8
* Trace Instrumentation: [Servlet](https://github.com/openzipkin/brave/tree/master/instrumentation/servlet), [Spring MVC](https://github.com/openzipkin/brave/tree/master/instrumentation/spring-webmvc), [Spring Web](https://github.com/openzipkin/brave/tree/master/instrumentation/spring-web), [OkHttp](https://github.com/openzipkin/brave/tree/master/instrumentation/okhttp3), [SLF4J](https://github.com/openzipkin/brave/tree/master/context/slf4j)
* Trace Configuration: [Brave API](https://github.com/openzipkin/brave/tree/master/brave#setup) [Spring Java Config](webmvc4-jetty/src/main/java/brave/example/TracingConfiguration.java)

* [webmvc4-boot](webmvc4-boot) `BRAVE_EXAMPLE=webmvc4-boot docker-compose up`
* [webmvc4-boot](webmvc4-boot) `BRAVE_EXAMPLE=webmvc4-boot docker compose up`
* Runtime: Spring 4.3, OkHttp 3.14, Spring Boot 1.5, Servlet 3.1, Jetty 9.4, SLF4J 1.7, JRE 8
* Trace Instrumentation: [Servlet](https://github.com/openzipkin/brave/tree/master/instrumentation/servlet), [Spring MVC](https://github.com/openzipkin/brave/tree/master/instrumentation/spring-webmvc), [Spring Web](https://github.com/openzipkin/brave/tree/master/instrumentation/spring-web), [OkHttp](https://github.com/openzipkin/brave/tree/master/instrumentation/okhttp3), [SLF4J](https://github.com/openzipkin/brave/tree/master/context/slf4j)
* Trace Configuration: [Brave API](https://github.com/openzipkin/brave/tree/master/brave#setup) [Spring Boot AutoConfiguration](webmvc4-boot/src/main/java/brave/example/TracingAutoConfiguration.java)
Expand All @@ -93,11 +93,11 @@ Here are the example projects you can try:

[Docker Compose](https://docs.docker.com/compose/) is the easiest way to start.

Just run `docker-compose up`.
Just run `docker compose up`.

Armeria starts by default. To use a different version of the project, set the `VERSION` variable.

Ex. `VERSION=webmvc25-jetty docker-compose up`
Ex. `VERSION=webmvc25-jetty docker compose up`

## Starting the services from source

Expand Down
4 changes: 2 additions & 2 deletions build-bin/docker-compose.base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version: "2.4"
services:
sut:
container_name: sut
image: ghcr.io/openzipkin/alpine:3.19.1
image: ghcr.io/openzipkin/alpine:3.20.2
entrypoint: /bin/sh
# Keep the container running until HEALTHCHECK passes
command: "-c \"sleep 5m\""
Expand All @@ -16,7 +16,7 @@ services:
test: wget -qO- --spider http://zipkin:9411/api/v2/trace/cafebabecafebabe
get_frontend:
container_name: get_frontend
image: ghcr.io/openzipkin/alpine:3.19.1
image: ghcr.io/openzipkin/alpine:3.20.2
entrypoint: /bin/sh
# Pass a trace header with a constant trace ID, so that we know what to look for later
command: "-c \"wget -qO- --header 'b3: cafebabecafebabe-cafebabecafebabe-1' http://frontend:8081\""
Expand Down
2 changes: 1 addition & 1 deletion build-bin/docker/docker-healthcheck
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# SPDX-License-Identifier: Apache-2.0
#

# HEALTHCHECK for use in `docker ps`, `docker-compose ps`, or a readiness probe in k8s.
# HEALTHCHECK for use in `docker ps`, `docker compose ps`, or a readiness probe in k8s.
#
# The following variables are read from ENV in the Dockerfile or env readable from pid 1.
# * HEALTHCHECK_KIND - must be "http" or "tcp". Defaults to "http"
Expand Down
6 changes: 3 additions & 3 deletions build-bin/docker/docker_args
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ if [ -n "${DOCKER_TARGET}" ]; then
fi

# When non-empty, becomes the layer that builds the maven projects.
# e.g. ghcr.io/openzipkin/java:11.0.23_p9
# e.g. ghcr.io/openzipkin/java:11.0.24_p8
#
# This must include maven and a full JDK.
if [ -n "${DOCKER_BUILD_IMAGE}" ]; then
docker_args="${docker_args} --build-arg docker_build_image=${DOCKER_BUILD_IMAGE}"
fi

# When non-empty, becomes the base layer including tag appropriate for the image being built.
# e.g. ghcr.io/openzipkin/java:21.0.3_p9-jre
# e.g. ghcr.io/openzipkin/java:21.0.4_p7-jre
#
# This is not required to be a base (FROM scratch) image like ghcr.io/openzipkin/alpine:3.12.3
# See https://docs.docker.com/glossary/#parent-image
Expand All @@ -59,7 +59,7 @@ if [ -n "${ALPINE_VERSION}" ]; then
docker_args="${docker_args} --build-arg alpine_version=${ALPINE_VERSION}"
fi

# When non-empty, becomes the build-arg java_version. e.g. "21.0.3_p9"
# When non-empty, becomes the build-arg java_version. e.g. "21.0.4_p7"
# Used to align base layers from https://github.com/orgs/openzipkin/packages/container/package/java
if [ -n "${JAVA_VERSION}" ]; then
docker_args="${docker_args} --build-arg java_version=${JAVA_VERSION}"
Expand Down
14 changes: 7 additions & 7 deletions build-bin/docker/docker_test_image
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@

set -ue

# export this variable so that docker-compose can use it
# export this variable so that docker compose can use it
export DOCKER_IMAGE=${1?full docker_tag is required. Ex openzipkin/zipkin:test}
# The two options are to run a single container of the image, or docker-compose which includes it.
# The two options are to run a single container of the image, or docker compose which includes it.
docker_compose_file=${2:-build-bin/docker-compose-$(echo ${DOCKER_IMAGE}| sed 's~.*/\(.*\):.*~\1~g').yml}
docker_container=${3:-sut}

# First try to run the intended containers.
health_rc=0
if test -f "${docker_compose_file}"; then
docker-compose -f "${docker_compose_file}" up --remove-orphans -d --quiet-pull || health_rc=1
docker compose -f "${docker_compose_file}" up --remove-orphans -d --quiet-pull || health_rc=1
else
docker run --name ${docker_container} -d ${DOCKER_IMAGE} || health_rc=1
fi
Expand All @@ -30,13 +30,13 @@ fi
if [ "${health_rc}" = "1" ] || ! build-bin/docker/docker_block_on_health ${docker_container}; then
>&2 echo "*** Failed waiting for health of ${docker_container}"

# Sadly, we can't `docker-compose inspect`. This means we may not see the inspect output of the
# container that failed in docker-compose until this is revised to work around compose/issues/4155
# Sadly, we can't `docker compose inspect`. This means we may not see the inspect output of the
# container that failed in docker compose until this is revised to work around compose/issues/4155
docker inspect --format='{{json .State.Health.Log}}' ${docker_container} || true

# Log any containers output to console before we remove them.
if test -f "${docker_compose_file}"; then
docker-compose -f "${docker_compose_file}" logs
docker compose -f "${docker_compose_file}" logs
else
docker logs ${docker_container} || true
fi
Expand All @@ -45,7 +45,7 @@ fi

# Clean up any containers, so that we can run this again without conflict.
if test -f "${docker_compose_file}"; then
docker-compose -f "${docker_compose_file}" down
docker compose -f "${docker_compose_file}" down
else
docker kill ${docker_container} && docker rm ${docker_container}
fi
Expand Down
24 changes: 12 additions & 12 deletions build-bin/docker_args
Original file line number Diff line number Diff line change
Expand Up @@ -8,38 +8,38 @@ else
exit 1
fi

JAVA_VERSION=${JAVA_VERSION:-21.0.3_p9}
JAVA_VERSION=${JAVA_VERSION:-21.0.4_p7}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all images here are newly published, except the jdk 1.6 which has no update in recent years

# DOCKER_ARCHS to eventually push to the registry
DOCKER_ARCHS="amd64 arm64"

case "${JRE_VERSION}" in
6 )
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.23_p9
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.24_p8
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:1.6.0-119
# single arch image
DOCKER_ARCHS=amd64
;;
7 )
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.23_p9
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:1.7.0_285
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.24_p8
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:1.7.0_352
# single arch image
DOCKER_ARCHS=amd64
;;
8 )
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.23_p9
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:8.392.08-jre
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.24_p8
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:8.402.06-jre
;;
11 )
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.23_p9
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:11.0.23_p9-jre
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:11.0.24_p8
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:11.0.24_p8-jre
;;
17 )
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:21.0.3_p9
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:17.0.11_p9-jre
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:21.0.4_p7
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:17.0.12_p7-jre
;;
21 )
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:21.0.3_p9
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:21.0.3_p9-jre
DOCKER_BUILD_IMAGE=ghcr.io/openzipkin/java:21.0.4_p7
DOCKER_PARENT_IMAGE=ghcr.io/openzipkin/java:21.0.4_p7-jre
;;
* )
echo "Invalid JRE_VERSION: ${JRE_VERSION}"
Expand Down
2 changes: 1 addition & 1 deletion build-bin/maven/maven_unjar
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ fi

if ! test -f ${artifact_id}.jar && [ ${is_release} = "true" ]; then
mvn_get="mvn -q --batch-mode -Denforcer.fail=false \
org.apache.maven.plugins:maven-dependency-plugin:3.6.1:get \
org.apache.maven.plugins:maven-dependency-plugin:3.7.1:get \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here we make sure we use the same version cached in the java images

-Dtransitive=false -DgroupId=${group_id} -DartifactId=${artifact_id} -Dversion=${version}"

if [ -n "${classifier}" ]; then
Expand Down
6 changes: 3 additions & 3 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
# non-root users and such as they are not intended to run in production anyway.

# The image binaries this example builds are installed over
ARG docker_parent_image=ghcr.io/openzipkin/java:21.0.3_p9
ARG docker_parent_image=ghcr.io/openzipkin/java:21.0.4_p7
## Use JDK 11 to build projects, as that can still compile Java 6
ARG docker_build_image=ghcr.io/openzipkin/java:11.0.23_p9
ARG docker_build_image=ghcr.io/openzipkin/java:11.0.24_p8

# We copy files from the context into a scratch container first to avoid a problem where docker and
# docker-compose don't share layer hashes https://github.com/docker/compose/issues/883 normally.
# docker compose don't share layer hashes https://github.com/docker/compose/issues/883 normally.
# COPY --from= works around the issue.
FROM scratch as scratch

Expand Down
Loading
Loading