Skip to content

Commit

Permalink
neat java&kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
hanl5 committed Sep 30, 2024
1 parent af5b662 commit fbbf1ef
Show file tree
Hide file tree
Showing 19 changed files with 129 additions and 115 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,8 @@ docker/gflags
docker/Catch2
bazel-*
hello_grpc_flutter/build/*

hello-grpc-kotlin/client/build
hello-grpc-kotlin/server/build
hello-grpc-kotlin/stub/build
hello-grpc-kotlin/protos/build
6 changes: 3 additions & 3 deletions docker/README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Docker Images

https://hub.docker.com/repositories/feuyeux
<https://hub.docker.com/repositories/feuyeux>

| No. | Lang | Base Image | Server | Client |
|:----|:-----------------------------|:---------------------------------------------------------------|:---------------------------------|:---------------------------------|
| 1 | [C++](hello-grpc-cpp) | | feuyeux/grpc_server_cpp:1.0.0 | feuyeux/grpc_client_cpp:1.0.0 |
| 2 | [Rust](hello-grpc-rust) | | feuyeux/grpc_server_rust:1.0.0 | feuyeux/grpc_client_rust:1.0.0 |
| 3 | [Java](hello-grpc-java) | | feuyeux/grpc_server_java:1.0.0 | feuyeux/grpc_client_java:1.0.0 |
| 3 | [Java](hello-grpc-java) | [openjdk:21-jdk-slim](java_grpc.dockerfile) | feuyeux/grpc_server_java:1.0.0 | feuyeux/grpc_client_java:1.0.0 |
| 4 | [Go](hello-grpc-go) | [golang:1.23-alpine](go_grpc.dockerfile) | feuyeux/grpc_server_go:1.0.0 | feuyeux/grpc_client_go:1.0.0 |
| 5 | [C#](hello-grpc-csharp) | [mcr.microsoft.com/dotnet/runtime:8.0](csharp_grpc.dockerfile) | feuyeux/grpc_server_csharp:1.0.0 | feuyeux/grpc_client_csharp:1.0.0 |
| 6 | [Python](hello-grpc-python) | | feuyeux/grpc_server_python:1.0.0 | feuyeux/grpc_client_python:1.0.0 |
| 7 | [Node.js](hello-grpc-nodejs) | | feuyeux/grpc_server_nodejs:1.0.0 | feuyeux/grpc_client_nodejs:1.0.0 |
| 8 | [Dart](hello-grpc-dart) | | feuyeux/grpc_server_dart:1.0.0 | feuyeux/grpc_client_dart:1.0.0 |
| 9 | [Kotlin](hello-grpc-kotlin) | | feuyeux/grpc_server_kotlin:1.0.0 | feuyeux/grpc_client_kotlin:1.0.0 |
| 9 | [Kotlin](hello-grpc-kotlin) | [openjdk:21-jdk-slim](kotlin_grpc.dockerfile) | feuyeux/grpc_server_kotlin:1.0.0 | feuyeux/grpc_client_kotlin:1.0.0 |
| 10 | [Swift](hello-grpc-swift) | | feuyeux/grpc_server_swift:1.0.0 | feuyeux/grpc_client_swift:1.0.0 |
| 11 | [PHP](hello-grpc-php) | | feuyeux/grpc_server_php:1.0.0 | feuyeux/grpc_client_php:1.0.0 |
| 12 | [TypeScript](hello-grpc-ts) | | feuyeux/grpc_server_ts:1.0.0 | feuyeux/grpc_client_ts:1.0.0 |
Expand Down
File renamed without changes.
File renamed without changes.
69 changes: 0 additions & 69 deletions docker/build_java.sh

This file was deleted.

4 changes: 0 additions & 4 deletions docker/grpc-client-java.dockerfile

This file was deleted.

5 changes: 0 additions & 5 deletions docker/grpc-client-kotlin.dockerfile

This file was deleted.

5 changes: 0 additions & 5 deletions docker/grpc-server-java.dockerfile

This file was deleted.

6 changes: 0 additions & 6 deletions docker/grpc-server-kotlin.dockerfile

This file was deleted.

39 changes: 39 additions & 0 deletions docker/java_build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/bin/bash
cd "$(
cd "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)/" || exit
set -e

build_server() {
echo "~~~ build grpc server java ~~~"
cd ../hello-grpc-java
mvn clean install -DskipTests -f server_pom.xml
cp target/hello-grpc-java-server.jar ../docker/

cd ../docker
docker build -f java_grpc.dockerfile --target server -t feuyeux/grpc_server_java:1.0.0 --pull .
rm -rf hello-grpc-java-server.jar
echo
}

build_client() {
echo "~~~ build grpc client java ~~~"
cd ../hello-grpc-java
mvn clean install -DskipTests -f client_pom.xml
cp target/hello-grpc-java-client.jar ../docker/

cd ../docker
docker build -f java_grpc.dockerfile --target client -t feuyeux/grpc_client_java:1.0.0 --pull .
rm -rf hello-grpc-java-client.jar
echo
}

if [ "$1" == "server" ]; then
build_server
elif [ "$1" == "client" ]; then
build_client
else
build_server
build_client
fi
10 changes: 10 additions & 0 deletions docker/java_grpc.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
FROM openjdk:21-jdk-slim AS server
COPY hello-grpc-java-server.jar grpc-server.jar
COPY tls/server_certs /var/hello_grpc/server_certs
COPY tls/client_certs /var/hello_grpc/client_certs
ENTRYPOINT ["java","-jar","/grpc-server.jar"]

FROM openjdk:21-jdk-slim AS client
COPY hello-grpc-java-client.jar grpc-client.jar
COPY tls/client_certs /var/hello_grpc/client_certs
CMD ["java","-jar","/grpc-client.jar"]
3 changes: 3 additions & 0 deletions docker/java_push.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash
docker push feuyeux/grpc_server_java:1.0.0
docker push feuyeux/grpc_client_java:1.0.0
13 changes: 13 additions & 0 deletions docker/java_run_client.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
cd "$(
cd "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)/" || exit
export CLIENT_NAME=grpc_client_java
export CLIENT_IMG=feuyeux/$CLIENT_NAME:1.0.0
# if there's first argument, it's secure, otherwise insecure
if [ "$1" = "secure" ]; then
sh run_tls_client.sh
else
sh run_insecure_client.sh
fi
13 changes: 13 additions & 0 deletions docker/java_run_server.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
cd "$(
cd "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)/" || exit
export SERVER_NAME=grpc_server_java
export SERVER_IMG=feuyeux/$SERVER_NAME:1.0.0
# if there's first argument, it's secure, otherwise insecure
if [ "$1" = "secure" ]; then
sh run_tls_server.sh
else
sh run_insecure_server.sh
fi
25 changes: 2 additions & 23 deletions docker/build_kotlin.sh → docker/kotlin_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,6 @@ cd "$(
pwd -P
)/" || exit

os_name=""
os_name="$(uname -s)"
if [ "$(uname)" = "Darwin" ]; then
export JAVA_HOME=/usr/local/opt/openjdk/libexec/openjdk.jdk/Contents/Home
elif
[ "$(expr substr "${os_name}" 1 5)" = "Linux" ]
then
echo "Linux"
elif
[ "$(expr substr "${os_name}" 1 7)" = "MSYS_NT" ]
then
export JAVA_HOME=D:/zoo/jdk-21
elif
[ "$(expr substr "${os_name}" 1 10)" = "MINGW64_NT" ]
then
export JAVA_HOME=D:/zoo/jdk-21
else
echo "Oops"
fi

echo "JAVA_HOME=${JAVA_HOME}"
gradle --version

echo "~~~ build grpc server kotlin ~~~"
Expand All @@ -38,7 +17,7 @@ cp build/install/server-shadow/bin/server ../../docker/server_start.sh
cp build/install/server-shadow/lib/proto-server-all.jar ../../docker/proto-server-all.jar
echo "build server image"
cd ../../docker
docker build -f grpc-server-kotlin.dockerfile -t feuyeux/grpc_server_kotlin:1.0.0 .
docker build -f kotlin_grpc.dockerfile --target server -t feuyeux/grpc_server_kotlin:1.0.0 .
rm -rf server_start.sh
rm -rf proto-server-all.jar
echo
Expand All @@ -51,7 +30,7 @@ cp build/install/client-shadow/bin/client ../../docker/client_start.sh
cp build/install/client-shadow/lib/proto-client-all.jar ../../docker/proto-client-all.jar
echo "build client image"
cd ../../docker
docker build -f grpc-client-kotlin.dockerfile -t feuyeux/grpc_client_kotlin:1.0.0 .
docker build -f kotlin_grpc.dockerfile --target client -t feuyeux/grpc_client_kotlin:1.0.0 .
rm -rf client_start.sh
rm -rf proto-client-all.jar
echo
12 changes: 12 additions & 0 deletions docker/kotlin_grpc.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM openjdk:21-jdk-slim AS server
COPY server_start.sh server_start.sh
COPY proto-server-all.jar lib/proto-server-all.jar
COPY tls/server_certs /var/hello_grpc/server_certs
COPY tls/client_certs /var/hello_grpc/client_certs
ENTRYPOINT ["sh","server_start.sh"]

FROM openjdk:21-jdk-slim AS client
COPY client_start.sh client_start.sh
COPY proto-client-all.jar lib/proto-client-all.jar
COPY tls/client_certs /var/hello_grpc/client_certs
ENTRYPOINT ["sh","client_start.sh"]
3 changes: 3 additions & 0 deletions docker/kotlin_push.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash
docker push feuyeux/grpc_server_kotlin:1.0.0
docker push feuyeux/grpc_client_kotlin:1.0.0
13 changes: 13 additions & 0 deletions docker/kotlin_run_client.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
cd "$(
cd "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)/" || exit
export CLIENT_NAME=grpc_client_kotlin
export CLIENT_IMG=feuyeux/$CLIENT_NAME:1.0.0
# if there's first argument, it's secure, otherwise insecure
if [ "$1" = "secure" ]; then
sh run_tls_client.sh
else
sh run_insecure_client.sh
fi
13 changes: 13 additions & 0 deletions docker/kotlin_run_server.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash
cd "$(
cd "$(dirname "$0")" >/dev/null 2>&1
pwd -P
)/" || exit
export SERVER_NAME=grpc_server_kotlin
export SERVER_IMG=feuyeux/$SERVER_NAME:1.0.0
# if there's first argument, it's secure, otherwise insecure
if [ "$1" = "secure" ]; then
sh run_tls_server.sh
else
sh run_insecure_server.sh
fi

0 comments on commit fbbf1ef

Please sign in to comment.