Use render.com para implementar proyectos springboot de forma gratuita

Recientemente, quiero usar la plataforma gratuita para implementar el proyecto springboot.Después de la selección, los siguientes proveedores de servicios están disponibles:

  1. heroku
  2. volar.io
  3. render.com

Aquí hay algunas comparaciones:

plataforma apoyo límite
heroku.com la mayoría de apoyo Necesidad de vincular una tarjeta de crédito, parece que no hay tiempo libre
volar.io Nodo, Python, Laravel, Go, Ruby, Docker Hasta 3 máquinas virtuales compartidas cpu-1 * 256 MB, almacenamiento de volumen persistente de 3 GB, tráfico externo de 160 GB
render.com Nodo, Python, Go, Ruby, PHP, Docker El ancho de banda es de 100 GB, el tiempo de compilación es de 500 minutos/mes y 5 aplicaciones después de una compilación exitosa se reservan para la reversión

heroku es una marca relativamente antigua, se usó en 2016 y también se puede usar una base de datos gratuita

fly.io se ve bien, pero debe usar el cliente para lanzar activamente la versión, y render.com puede importar los proyectos en github y realizar la implementación automática después del envío, que es lo más conveniente, por lo que la elección final es render.com

Registrar e importar proyectos

Después de abrir render.com, inicie sesión con su cuenta de GitHub y podrá importar el proyecto después de la autorización.

Hay bastantes idiomas soportados:

Siento que realmente hay muchas plataformas que Node.js puede elegir

Crear un nuevo proyecto springboot

En la figura anterior, podemos ver que el renderizado en sí mismo no es compatible con proyectos Java, por lo que se debe usar Docker.

Primero vaya a start.spring.io/ para generar el proyecto de arranque de primavera más simple:

Después de la descarga, se puede ejecutar con éxito localmente y se puede acceder a la interfaz normalmente. El siguiente paso es implementarlo en el render.

Hacer una imagen acoplable

Primero, clasifiquemos los pasos que queremos que realice render.com durante la implementación:

  1. Extraiga el código fuente de GitHub
  2. Use el gradle especificado para compilar y generar .jarel archivo
  3. Ejecutar java -jar /app.jarejecutar proyecto

我本身对 docker 不熟悉,经过了一些曲折,最终完成了上面的步骤,成功跑起来了

#
# Build stage
#
FROM gradle:jdk17-jammy AS build
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle build --no-daemon

LABEL org.name="hezf"
#
# Package stage
#
FROM eclipse-temurin:17-jdk-jammy
COPY --from=build /home/gradle/src/build/libs/docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

这个例子源码在 GitHub

环境变量

很多时候我们后端项目需要链接数据库,但是这些信息肯定是需要隐藏起来的,千万不要传到 GitHub 上

我在filess 新建了个 MySQL 实例,在本地使用 navicat 成功连上了,当然了这个数据库也是免费的

首先我们在 springboot 项目根目录,新建个 .env 文件,然后在.gitignore把这个文件名添加进去

### VS Code ###
.vscode/

.env

这样这个文件就不会上传到 GitHub 了,然后在.env填写上一步获取到的数据库相关信息

DB_HOST=gmp.zh.filess.io
DB_PORT=3307
DB_USER=authdb_replacedie
DB_PASSWORD=1f1fdfe1a0220bf5e822ef1a8d583b762d
DB=authdb_replacedie

配合项目配置文件 application.properties


spring.config.import=optional:file:.env[.properties] 

DB_HOST: ${DB_HOST}

这样就可以正常的读取环境变量了

  @Value("${DB_HOST}")
  private String dbHost;

以上的内容都是针对本地的环境,因为.env没有上传到 GitHub ,那么在 render.com 怎么读取?

在 render.com 打开项目,找到 Environment ,点击 Add Secret File 按钮,左侧写文件名 .env 右侧填写上内容保存好就可以了

image.png

这样在项目 build 的时候就可以读取到 .env 这个 secret 文件,这就实现了本地和部署环境的一致。而且虽然是开源项目,但是没有暴露关键信息。

Supongo que te gusta

Origin juejin.im/post/7261599630827683896
Recomendado
Clasificación