Esta aplicação utiliza variáveis de ambiente para detectar o idioma a ser usado para imprimir as mensagens no endpoint /api, e suporte requisições GET, POST, PUT e DELETE para fazer um CRUD de dados de livros numa base de dados H2 embarcada, apesar de também suportar PostgreSQL nos demais perfis.
Existem dois Dockerfiles, um não otimizado e um otimizado para OpenShift. Você pode ler o tutorial completo de como compor esta imagem aqui.
- Java 11
- Maven
- Lombok
- Spring Boot
- Spring Data JPA
- Spring Web
- Spring Actuator
- Banco de dados H2
- Docker (ou Podman)
- OpenShift
- PostgreSQL
- Fabric8
# Faça o build da aplicação
cd simplecrud-spring
mvn clean install
# Defina o perfil a user usado (passe o perfil direto para o comando)
export APP_PROFILE="default" # português - banco em memória
export APP_PROFILE="pt" # português - banco postgresql
export APP_PROFILE="en" # inglês - banco postgresql
export APP_PROFILE="fr" # francês - banco postgresql
# Execute-a
java -Dspring.profiles.active="$APP_PROFILE" -jar target/simplecrud-0.0.1-SNAPSHOT.jar
A aplicação estará disponível em http://localhost:8080/api
# Faça o build da imagem
cd simplecrud-spring/docker
docker build -t simplecrud .
# Suba um container com a imagem
docker run --name simplecrud -d -p 8080:8080 simplecrud
# Para abrir o container
docker exec -it simplecrud bash
A aplicação estará disponível em http://localhost:8080/api
# Faça o build da imagem
cd simplecrud-spring/docker
podman build -t docker.io/seu_usuario/simplecrud . -f Dockerfile-openshift
# Suba a imagem para o repositório
podman push docker.io/seu_usuario/simplecrud
# Crie um projeto e um segredo para o repositório
oc new-project meuprojeto
oc create secret generic dockerio --from-file .dockerconfigjson=${XDG_RUNTIME_DIR}/containers/auth.json --type kubernetes.io/dockerconfigjson
# Vincule o segredo ao projeto
oc secrets link default dockerio --for=pull
# Crie um image stream da imagem
oc import-image simplecrud --confirm --reference-policy local --from docker.io/seu_usuario/simplecrud:latest
# Crie uma aplicação
oc new-app --name minhaaplicacao -i simplecrud
# Exponha a aplicação
oc expose svc minhaaplicacao
A aplicação está disponível em http://minhaaplicacao-meuprojeto.apps.cluster.openshift.com/api