Skip to content

Commit

Permalink
Updates to latest docker images, aligning maven version (#125)
Browse files Browse the repository at this point in the history
Signed-off-by: Adrian Cole <adrian.cole@elastic.co>
  • Loading branch information
codefromthecrypt authored Aug 3, 2024
1 parent 20b78cf commit b247c0a
Show file tree
Hide file tree
Showing 13 changed files with 200 additions and 173 deletions.
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}
# 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 \
-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

0 comments on commit b247c0a

Please sign in to comment.