Skip to content
Snippets Groups Projects
Commit 73477dca authored by Tomáš Holub's avatar Tomáš Holub
Browse files

#1 - Nahrání quarkus projektu

grpc komunikace s DNA ANALYSER mikroservisou
parent 73848c07
1 merge request!3#1 - Nahrání quarkus projektu
Pipeline #145432 failed with stage
in 58 seconds
......@@ -108,7 +108,6 @@ processResources {
task buildNativeImage(type: Exec) {
description = 'Builds a native image of the Quarkus application'
group = 'Build'
// Define the command to execute.
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine "${project.rootDir}\\gradlew.bat", "clean", "build", "-Dquarkus.package.type=native", "-Dquarkus.native.container-build=true", "-Dquarkus.container-image.build=true"
......@@ -122,3 +121,21 @@ task buildNativeImage(type: Exec) {
environment "QUARKUS_CONTAINER_IMAGE_TAG", "${dockerImageTag}"
}
}
task buildDevImage(type: Exec) {
description = 'Builds a DEV image of the Quarkus application'
group = 'Build'
// Define the command to execute.
if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
commandLine "${project.rootDir}\\gradlew.bat", "clean", "build", "-Dquarkus.container-image.build=true"
} else {
commandLine "${project.rootDir}/gradlew", "clean", "build", "-Dquarkus.container-image.build=true"
}
doFirst {
environment "QUARKUS_CONTAINER_IMAGE_GROUP", "${dockerImageNamespace}"
environment "QUARKUS_CONTAINER_IMAGE_NAME", "${dockerRepository}"
environment "QUARKUS_CONTAINER_IMAGE_TAG", "${dockerImageTag}"
}
}
version: '3.8'
services:
app:
build:
context: .
dockerfile: src/main/docker/Dockerfile.native-micro
image: quarkus/sequence
sequence_postgres:
image: postgres:13-alpine
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=sequence_postgres
ports:
- 8080:8080
- 5432:5432
sequence_pgadmin:
image: dpage/pgadmin4:latest
depends_on:
- db
- sequence_postgres
environment:
- QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://db:5432/hibernate_orm_test
- QUARKUS_DATASOURCE_USERNAME=postgres
- QUARKUS_DATASOURCE_PASSWORD=postgres
profiles:
- production
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-user@mendelu.cz}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-user}
volumes:
- sequence_pgadmin:/root/.sequence_pgadmin
ports:
- 5051:80
db:
image: postgres:13-alpine
sequence_adminer:
image: adminer
depends_on:
- sequence_postgres
environment:
ADMINER_DEFAULT_SERVER: sequence_postgres
ports:
- 5432:5432
- 5001:8080
dnaanalyser_backend:
image: dnaanalyser/dna-analyser:${TAG:-latest}
depends_on:
- backend_postgres
volumes:
- backend_db:/home/app/db
- backend_logs:/home/app/logs
- backend_config:/home/app/config
ports:
- 50051:50051
backend_postgres:
image: postgres:13
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=hibernate_orm_test
\ No newline at end of file
POSTGRES_DB: dna_analyser
POSTGRES_USER: ${POSTGRES_USER:-developer}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
PGDATA: /data/backend_postgres
volumes:
- backend_postgres:/data/backend_postgres
backend_pgadmin:
image: dpage/pgadmin4:latest
depends_on:
- backend_postgres
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-user@mendelu.cz}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-user}
volumes:
- backend_pgadmin:/root/.backend_pgadmin
ports:
- 5050:80
backend_adminer:
image: adminer
depends_on:
- backend_postgres
environment:
ADMINER_DEFAULT_SERVER: backend_postgres
ports:
- 5000:8080
volumes:
sequence_postgres:
sequence_pgadmin:
backend_postgres:
backend_pgadmin:
backend_db:
backend_logs:
backend_config:
\ No newline at end of file
package cz.mendelu;
import hello.HelloGrpc;
import hello.HelloReply;
import hello.HelloRequest;
import io.quarkus.grpc.GrpcService;
import io.smallrye.mutiny.Uni;
@GrpcService
public class HelloGrpcService implements HelloGrpc {
@Override
public Uni<HelloReply> sayHello(HelloRequest request) {
return Uni.createFrom().item("Hello " + request.getName() + "!")
.map(msg -> HelloReply.newBuilder().setMessage(msg).build());
}
}
package cz.mendelu.grpc.client;
import grpc.sequence.GreeterGrpc;
import grpc.sequence.Hello;
import io.quarkus.grpc.GrpcClient;
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class HelloGrpcClientTest {
@GrpcClient("greeter")
GreeterGrpc.GreeterBlockingStub greeterBlockingStub;
public String sayHello(String name) {
Hello.HelloReply reply = greeterBlockingStub.sayHello(Hello.HelloRequest.newBuilder().setName(name).build());
return reply.getMessage();
}
}
package cz.mendelu;
import hello.HelloGrpc;
import hello.HelloReply;
import hello.HelloRequest;
import io.quarkus.grpc.GrpcClient;
import io.smallrye.mutiny.Uni;
package cz.mendelu.grpc.client;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class HelloGrpcReceiver {
public class HelloGrpcTestController {
@GrpcClient
HelloGrpc hello;
@Inject
HelloGrpcClientTest helloGrpcClientTest;
@GET
@Produces(MediaType.TEXT_PLAIN)
......@@ -25,8 +20,7 @@ public class HelloGrpcReceiver {
@GET
@Path("/{name}")
public Uni<String> hello(String name) {
return hello.sayHello(HelloRequest.newBuilder().setName(name).build())
.onItem().transform(HelloReply::getMessage);
public String hello(String name) {
return helloGrpcClientTest.sayHello(name);
}
}
package cz.mendelu.grpc.server;
import grpc.sequence.GreeterGrpc;
import grpc.sequence.Hello;
import io.grpc.stub.StreamObserver;
import io.quarkus.grpc.GrpcService;
@GrpcService
public class HelloGrpcService extends GreeterGrpc.GreeterImplBase {
@Override
public void sayHello(Hello.HelloRequest request, StreamObserver<Hello.HelloReply> responseObserver) {
String name = request.getName();
String message = "Hello " + name;
responseObserver.onNext(Hello.HelloReply.newBuilder().setMessage(message).build());
responseObserver.onCompleted();
}
}
syntax = "proto3";
option java_multiple_files = true;
option java_package = "hello";
option java_outer_classname = "HelloGrpcProto";
package hello;
service HelloGrpc {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
option java_package = "grpc.sequence";
message HelloRequest {
string name = 1;
......@@ -17,3 +9,7 @@ message HelloRequest {
message HelloReply {
string message = 1;
}
service Greeter {
rpc sayHello (HelloRequest) returns (HelloReply);
}
# GLOBAL
# -----------
quarkus.hibernate-orm.database.generation=drop-and-create
quarkus.datasource.devservices.enabled=false
quarkus.datasource.db-kind=pg
quarkus.datasource.username=postgres
quarkus.datasource.password=postgres
quarkus.datasource.jdbc.url=jdbc:postgresql://db:5432/hibernate_orm_test
quarkus.datasource.jdbc.url=jdbc:postgresql://sequence_postgres:5432/sequence_postgres
quarkus.datasource.jdbc.max-size=16
%prod.quarkus.datasource.username=postgres
%prod.quarkus.datasource.password=postgres
quarkus.grpc.clients.hello.host=localhost
quarkus.grpc.server.port=50052
quarkus.grpc.server.enable-reflection-service=true
quarkus.grpc.clients.greeter.host=localhost
quarkus.grpc.clients.greeter.port=50051
quarkus.grpc.clients.greeter.plain-text=true
quarkus.grpc.clients.greeter.keep-alive-without-calls=true
quarkus.grpc.clients.greeter.negotiation-type=PLAINTEXT
# DEV
# -----------
%dev.quarkus.datasource.jdbc.url=jdbc:postgresql://host.docker.internal:5432/hibernate_orm_test
\ No newline at end of file
%dev.quarkus.datasource.jdbc.url=jdbc:postgresql://host.docker.internal:5432/sequence_postgres
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment