Es necesario crear un nuevo repositorio en GitHub donde vamos a subir todo nuestro archivo de Eclipse, pero antes de subirlo al repo 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 -> PostgeSQL
- Configurar los parámetros de la base de datos y presionar el botón
Create Database
:
Name: nombreProyecto
User: root
- Presionar el botón
Create Database
y esperar que termine la configuración de la base de datos. - En un bloc de notas, guardar la información de la base de datos de Render ubicada en Base de datos -> Info -> Connections. Esta información incluye el
hostname, port, name_database, username y password
- La información que obtendremos de Render se guardará dentro de variables específicas de la siguiente manera:
${PROD_DB_HOSTNAME} Hostname
${PROD_DB_PORT} Port
${PROD_DB_NAME} Database
${PROD_DB_USERNAME} Username
${PROD_DB_PASSWORD} Password
Iniciamos la modificación en Eclipse para el Deploy.
- En el archivo
build.gradle
eliminar la dependencia de MySQL y agregar la dependencia de PostgreSQL:
//https://mvnrepository.com/artifact/org.postgresql/postgresql
runtimeOnly 'org.postgresql:postgresql'
- Crear un archivo llamado
Dockerfile
, click derecho sobre la carpeta del Project -> New -> File. Dentro del archivoDockerfile
agregamos lo siguiente:
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
que se encuentra en la carpeta src/main/resources y por seguridad, colocar las variables de entorno de cada dato.
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}
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL10Dialect
#create, create-drop, validate, update
spring.jpa.hibernate.ddl-auto=create
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE
*Recuerda refrescar el proyecto de Gradle después de haber creado y modificado los archivos.
-
En las tareas de Gradle (
Gradle Tasks
) seleccionarbuild
y doble click en el archivobuild
. Una vez que haya terminado la ejecución, validar en la carpeta del proyecto que los archivos.jar
fueron creados.- Estos archivos
.jar
son los que podremos subir para no exponer las contraseñas.
- Estos archivos
-
En la carpeta del proyecto ubicar el archivo
.gitignore
, comentar el directorio build y src/main/**/build/ y guardar
#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 y ubicar la lista desplegable
Advance
. Dentro de Advance creamos las variables de entorno. - Crear todas las variables de entorno (que definimos en el paso 3 de Eclipse), sin incluir los símbolos de $ y {}. Para ello, presionamos el botón
Add Enviroment Variable
y llenamos con los valores que copiamos en nuestro bloc de notas. - Presionar el botón
Create Web Service
- Inicia el deploy y esperar 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 productos utilizando postman, ya que 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 el URL que se encuentra en la parte superior del dashboard, el cual tiene dominio
.onrender
y complementamos con nuestro path configurado en spring boot para 'postear' registros desde Postman. - Modificar la url del fetch con la nueva url que nos proporciona Render.
- En la carpeta
static
que se encuentra en el directorio src/main/resources del proyecto de Spring boot, copiar el proyecto del frontend. - En
application.properties
cambiarcreate
porvalidate
y repetir el paso 4 de Eclipse en elbuild
. - Realizar commit y push al repositorio y esperar que termine el deploy. En el enlace principal se encuentra el frontend desplegado.