Es necesario crear un nuevo repositorio en GitHub donde vamos a subir todo el proycto de Eclipse. Pero antes de subirlo hay que modificar algunas cositas en nuestro proyecto Gradle.
- Entrar al sitio oficial de Render [https://dashboard.render.com]
- Login con Github
- Presionar el botón New -> Service -> PostgeSQL
- Configurar los parámetros de la base de datos y presionar el botón
Create Database
:
"name": "ProjectName",
"user": "root"
- Presionar el botón
Create Database
y esperar que termine la configuración. - En un bloc de notas, guardar la información de la base de datos de Render
- Ubicada en
Database
->Info
->Connections
. - Esta información incluye:
hostname, port, name_database, username
ypassword
.
- Ubicada en
- La información obtenida se guardará dentro de variables de entorno de la siguiente manera:
${PROD_DB_HOSTNAME}=Hostname
${PROD_DB_PORT}=Port
${PROD_DB_NAME}=Database
${PROD_DB_USERNAME}=Username
${PROD_DB_PASSWORD}=Password
- En el archivo
build.gradle
eliminar la dependencia de MySQL - Agregar la dependencia de PostgreSQL:
implementation 'org.postgresql:postgresql:42.7.1'
- Crear un archivo llamado
Dockerfile
- click derecho sobre la carpeta del proyecto:
- Project -> New -> File.
-Dentro del archivo
Dockerfile
agregamos lo siguiente:
- Project -> New -> File.
-Dentro del archivo
- click derecho sobre la carpeta del proyecto:
FROM azul/zulu-openjdk:17-latest
VOLUME /tmp
COPY build/libs/*.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 8080
- Modificar el achivo
applications.properties
:- Se encuentra en la carpeta
src/main/resources
- Por seguridad, colocar las variables de entorno de la base de dato
- Se encuentra en la carpeta
spring.datasource.url=jdbc:postgresql://${PROD_DB_HOSTNAME}:${PROD_DB_PORT}/${PROD_DB_NAME}
spring.datasource.username=${PROD_DB_USERNAME}
spring.datasource.password=${PROD_DB_PASSWORD}
#Agregamos la configuración de `hibernate.dialect` aunque no es necesaria
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=create
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
- Crear un nuevo archivo
application-prod.properties
- Este servirá exclusivamente para configuración de producción.
- No es necesario modificar
application.properties
.
- Pega las mismas lineas de configuracion que la Opcion 1
- Modificar el achivo
applications.yml
:- Se encuentra en la carpeta
src/main/resources
- Por seguridad, colocar las variables de entorno de la base de dato
- Se encuentra en la carpeta
server:
port: 8080
spring:
application:
name: projectName
datasource:
url: jdbc:postgresql://${PROD_DB_HOSTNAME}:${PROD_DB_PORT}/${PROD_DB_NAME}
username: ${PROD_DB_USERNAME}
password: ${PROD_DB_PASSWORD}
jpa:
hibernate:
ddl-auto: create
logging:
level:
org.hibernate.SQL: DEBUG
org.hibernate.type: TRACE
Recuerda refrescar el proyecto de Gradle después creación y modificación.
-
En las tareas de Gradle (
Gradle Tasks
) seleccionarbuild
.- Accede a la carpeta
build
en root del proyecto. - Una vez que haya terminado la ejecución
- validar en la carpeta del proyecto que los archivos
.jar
fueron creados.
- validar en la carpeta del proyecto que los archivos
- Estos archivos
.jar
son los que podremos subir para no exponer las contraseñas.
- Accede a la carpeta
-
En la carpeta del proyecto ubicar el archivo
.gitignore
.- Comentar el directorio
build
ysrc/main/**/build/
. - Guarda cambios.
- Comentar el directorio
# build
# !**/src/main/**/build/
- Subir el proyecto al repositorio que creamos.
- Presionar el botón
New -> WebService
. - Conectar con el repositorio que se acaba de crear en Github.
- Escribir un nombre para la aplicación.
- Seleccionar el
Tipo de instancia
comoFree
. - Ubicar la sección de
Variables de entorno
, en donde copiaremos las variables de entorno que definimos en el paso 3 de Eclipse, sin incluir los caracteres$
y{}
.- Si se creó un
application-prod.properties
: - Agregar una variable de entorno:
SPRING_PROFILES_ACTIVE
con valor:prod
- Si se creó un
- Para ello, presionamos el botón
Add Enviroment Variable
- Llenamos con los valores en nuestro bloc de notas.
- Presionar el botón
Create Web Service
- Inicia el deploy y espera a que la aplicación termine de publicarse.
Para saber si el deploy finalizó con éxito, hay que localizar el mensaje Your service is live 🎉
en la consola del Dashboard.
Inmediamente, comenzar a crear datos de las entidades por medio de postman.
La versión gratuita de Render solo otorga un tiempo limitado de vida del deploy y después entra en suspensión, siendo imposible reactivarlo (a menos que contrates un plan).
- Copiamos la URL que se encuentra en la parte superior del dashboard.
- La cual tiene dominio
.onrender
- Complementamos con el
endpoint
configurado en spring boot para 'postear' registros.
- Complementamos con el
- Modificar la url del fetch en el frontend con la nueva url que nos proporciona Render.
- Dentro de
/static
que se encuentra en el directoriosrc/main/resources
del proyecto: 2.1 Copiamos el frontend del proyecto.No olvides refrescar el proyecto
- En
application.properties
oapplication.yml
cambiarddl-auto
encreate
porvalidate
3.1 y repetir el paso 4 de Eclipse en elbuild
:
spring.jpa.hibernate.ddl-auto=validate
- Realizar commit y push
- Esperar que termine el deploy.
- En el enlace principal de
.onrder
podemos acceder al fronted.