This commit is contained in:
Michele Artini 2023-09-13 13:51:30 +02:00
parent f155e1ca8a
commit 9fa00108d2
12 changed files with 126 additions and 32 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,14 @@
package eu.dnetlib.services.collector;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class SwaggerController {
@RequestMapping("/")
public String apiDoc() {
return "redirect:swagger-ui/index.html";
}
}

View File

@ -1,5 +1,6 @@
server.title = D-NET Collector API
server.description = Simple service to collect metadata
server.public_url =
server.servlet.context-path=/mail
server.public_url =
maven.pom.path = /META-INF/maven/eu.dnetlib.docker/dnet-collector/effective-pom.xml

View File

@ -3,13 +3,15 @@ package eu.dnetlib.utils.mail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import eu.dnetlib.base.AbstractDnetController;
import eu.dnetlib.errors.DnetException;
import eu.dnetlib.params.EmailMessage;
@RestController("/mail")
@RestController
@RequestMapping("/api")
public class EmailSenderController extends AbstractDnetController {
@Autowired

View File

@ -0,0 +1,14 @@
package eu.dnetlib.utils.mail;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class SwaggerController {
@RequestMapping("/")
public String apiDoc() {
return "redirect:swagger-ui/index.html";
}
}

View File

@ -1,5 +1,6 @@
server.title = D-NET Mail Sender API
server.description = Simple service that sends mails
server.servlet.context-path=/mail
server.public_url =
maven.pom.path = /META-INF/maven/eu.dnetlib.docker/dnet-email/effective-pom.xml
@ -8,3 +9,4 @@ mail.smtpHost = localhost
mail.smtpPort = 587
mail.smtpUser =
mail.smtpPassword =

View File

@ -0,0 +1,16 @@
server {
listen $NGINX_PORT default_server;
listen [::]:$NGINX_PORT default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {}
location /mail/ {
proxy_pass http://email:8080/mail/;
}
}

View File

@ -2,49 +2,65 @@ version: "3"
services:
collect:
build: ./apps/collector
ports:
- "8080:8080"
expose:
- ${SPRING_BOOT_PORT}
networks:
- backend
depends_on:
- postgresdb
- maindb
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgresdb:5432/dnet_is
- SPRING_DATASOURCE_USERNAME=dnet
- SPRING_DATASOURCE_PASSWORD=ax45vs#1A
- SPRING_DATASOURCE_URL=jdbc:postgresql://maindb:${PG_PORT}/${PG_MAIN_DB}
- SPRING_DATASOURCE_USERNAME=${PG_USER}
- SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD}
email:
build: ./apps/email
ports:
- "8081:8081"
expose:
- ${SPRING_BOOT_PORT}
networks:
- backend
depends_on:
- postgresdb
- maindb
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgresdb:5432/dnet_is
- SPRING_DATASOURCE_USERNAME=dnet
- SPRING_DATASOURCE_PASSWORD=ax45vs#1A
- SPRING_DATASOURCE_URL=jdbc:postgresql://maindb:${PG_PORT}/${PG_MAIN_DB}
- SPRING_DATASOURCE_USERNAME=${PG_USER}
- SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD}
postgresdb:
maindb:
image: postgres:15.4
restart: always
ports:
- "5432:5432"
expose:
- ${PG_PORT}
networks:
- backend
environment:
POSTGRES_USER: dnet
POSTGRES_PASSWORD: ax45vs#1A
POSTGRES_DB: dnet_is
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASSWORD}
POSTGRES_DB: ${PG_MAIN_DB}
volumes:
- ./data/sql/schema.sql:/docker-entrypoint-initdb.d/init.sql
- pgdata:/var/lib/postgresql/data
- pg_main_data:/var/lib/postgresql/data
mdstoredb:
image: postgres:15.4
restart: always
expose:
- ${PG_PORT}
networks:
- backend
environment:
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASSWORD}
POSTGRES_DB: ${PG_MDSTORE_DB}
volumes:
- ./data/sql/mdstore_schema.sql:/docker-entrypoint-initdb.d/init.sql
- pg_mdstore_data:/var/lib/postgresql/data
solr:
image: solr:9.3.0
ports:
- "8983:8983"
expose:
- ${SOLR_PORT}
networks:
- backend
volumes:
@ -53,11 +69,24 @@ services:
- solr-precreate
- gettingstarted
reverse-proxy:
image: nginx
volumes:
- ./data/nginx-templates:/etc/nginx/templates
ports:
- ${PROXY_PORT}:${PROXY_PORT}
networks:
- frontend
- backend
environment:
- NGINX_PORT=${PROXY_PORT}
networks:
backend:
frontend:
volumes:
solrdata:
pgdata:
pg_main_data:
pg_mdstore_data:

16
docker-start.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
mvn clean install
export PROXY_PORT=8888
export SPRING_BOOT_PORT=8080
export SOLR_PORT=8983
export PG_PORT=5432
export PG_USER=dnet
export PG_PASSWORD=ax45vs#1A
export PG_MAIN_DB=dnet_is
export PG_MDSTORE_DB=dnet_mdstores
docker-compose up --force-recreate --build

View File

@ -34,10 +34,10 @@
<artifactId>maven-model</artifactId>
</dependency>
<!-- Swagger -->
<!-- Swagger -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>
<!-- for /metrics and /health controllers -->

View File

@ -14,7 +14,7 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springdoc.core.GroupedOpenApi;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;

View File

@ -201,10 +201,10 @@
<!-- Swagger -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.6.10</version>
</dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>