¡Personalice el entorno de desarrollo en Space, colección con un solo clic! | Raiders prácticos

En JetBrains Space, puede iniciar un entorno de desarrollo para trabajar con código de forma remota. Una máquina virtual potente y dedicada ejecutará un contenedor Docker, la máquina virtual puede acceder al código fuente de su proyecto y proporcionar componentes de back-end para su editor de código nativo. Puede usar estas máquinas remotas para desarrollar software sin usar su computadora local .

 

Una de las muchas ventajas de usar el entorno de desarrollo de Space es que puede estandarizar el entorno de desarrollo para su equipo para que todos puedan comenzar a trabajar en proyectos de inmediato sin perder tiempo configurando sus computadoras locales. Además, puede ejecutar una tarea de calentamiento y preparar una instantánea con todas las dependencias de paquetes necesarias descargadas y un índice de proyectos preconstruidos listos para usar.

 

En este artículo, profundizaremos en las opciones de personalización para el entorno de desarrollo de Space y veremos cómo puede personalizar el entorno de desarrollo para que se adapte a las necesidades de su equipo .

 

 

Crear un entorno de desarrollo

 

Antes de sumergirnos en las opciones de personalización, hagamos clic aquí para obtener una revisión rápida de cómo comenzar con el entorno de desarrollo de Space.

 

Desde cualquier repositorio de Git en su organización de Space, puede iniciar un entorno de desarrollo haciendo clic  en Abrir en IDE . Además, puede crear un nuevo entorno de desarrollo para cualquier solicitud de combinación, por lo que no tiene que clonar manualmente el código y descargar dependencias en su máquina local para revisar y probar los cambios.

Sugerencia: puede migrar o duplicar un repositorio de Git existente desde GitHub o BitBucket y hacer que esté disponible en Space, incluidas todas las ramas, etiquetas y confirmaciones. De esta forma, puede aprovechar sus repositorios existentes para utilizar el entorno de desarrollo de Space.

 

Según las necesidades de su proyecto, puede elegir uno de los tres tipos de instancias de VM: normal (4 núcleos de CPU, 8 GB de memoria), grande (8 núcleos de CPU, 16 GB de memoria) o extra grande (16 núcleos de CPU, 32 GB de RAM) .

 

A continuación, debe elegir el IDE que desea usar: IntelliJ IDEA  con  JetBrains Gateway (disponible a través de la aplicación Toolbox) o  JetBrains Fleet . El soporte para otros IDE basados ​​en IntelliJ está en desarrollo.

  • IDEA IntelliJ

    https://www.jetbrains.com.cn/idea/

  • Puerta de enlace de JetBrains

    https://www.jetbrains.com.cn/remote-development/gateway/

  • Flota JetBrains

    https://www.jetbrains.com.cn/fleet/

 

También notará otros dos elementos en este cuadro de diálogo: una instantánea de calentamiento y un contenedor de desarrollo para iniciar el IDE remoto . En el ejemplo anterior, la instantánea de preparación aún no se muestra (explicaremos por qué más adelante) y la imagen de Docker predeterminada se usa como contenedor para iniciar el IDE.

https://www.jetbrains.com.cn/help/space/set-up-a-dev-evnvironment.html#using-the-default-dev-environment

 

Cuando haga clic en  Crear , Space iniciará su IDE en la nube. Una vez que la máquina virtual esté configurada y el backend IDE esté listo, JetBrains Gateway (o Fleet) se abrirá y se conectará a ella.

 

El backend de IntelliJ IDEA ahora se ejecuta en la nube de Space y usamos el cliente ligero JetBrains Gateway para conectarnos a él. Para muchos proyectos, esto es suficiente para comenzar a codificar de inmediato. Sin embargo, en este ejemplo específico, parece que falta algo:

  • Todavía necesitamos descargar el JDK correcto, como lo indica la advertencia en el editor.

  • Todavía necesitamos ejecutar  mvnw compilepara descargar dependencias, y también necesitamos sincronizar el proyecto en el IDE.

 

Esto podría estar bien para un entorno de desarrollo único, pero si todo su equipo va a trabajar en este repositorio, es mejor personalizar el entorno de desarrollo para asegurarse de que todas las dependencias estén allí desde el principio. ¡Veamos cómo hacerlo realidad!

 

 

Entorno de desarrollo personalizado Dockerfile

 

De forma predeterminada, Space ejecuta su entorno de desarrollo utilizando la imagen de contenedor predeterminada basada en el sistema operativo Ubuntu e incluye Git, cURL, Docker, Docker Compose y OpenJDK.

 

Puede agregar un Dockerfile personalizado a su proyecto para instalar las herramientas y bibliotecas necesarias. Según el IDE que use, debe crear  ./.jb-gateway/Dockerfile(IntelliJ IDEA con JetBrains Gateway) o  ./.fleet/Dockerfile(Fleet).

 

Para este proyecto en particular, personalizaremos el entorno para que se base en Ubuntu 20.04, y también instalaremos un montón de herramientas de línea de comandos que incluyen Git, curl, Docker y más. También agregamos varias versiones de OpenJDK y lo configuramos como predeterminado en la versión 16 para que el entorno de desarrollo pueda retomarlo.

 

FROM ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
ENV LC_ALL=C.UTF-8

RUN apt-get update && apt-get install -y apt-utils apt-transport-https

RUN apt-get install -y \
  # Utilities \
  curl unzip wget software-properties-common socat man-db gnupg2 pass lsof \
  # VCS \
  git \
  # JVM \
  openjdk-8-jre-headless openjdk-11-jdk-headless openjdk-16-jdk-headless openjdk-17-jdk-headless maven \
  # Docker
  docker docker-compose \
  && rm -rf /var/lib/apt/lists/*


ENV JAVA_HOME=/usr/lib/jvm/java-16-openjdk-amd64

 

Un Dockerfile personalizado tiene varios requisitos:

  • El sistema operativo debe ser una distribución de Linux basada en glibc (por ejemplo: CentOS 7+, Debian 9+ o Ubuntu 20.04+).

  • Debe instalar Git, OpenSSH (si desea utilizar un repositorio Git remoto) y  lsof(si necesita redirección de puertos en el IDE).

  • Los contenedores deben ejecutarse como root (sin ningún usuario que no sea root en el Dockerfile).

 

Tenga en cuenta que el Dockerfile es específico de la rama. Esto facilita la prueba de personalizaciones en ramas separadas, la actualización a versiones de herramientas más nuevas en ramas de características y más sin afectar a otros desarrolladores del equipo.

 

Cuando confirma y envía este Dockerfile personalizado a su repositorio de proyectos, Space lo usará como imagen base al crear nuevos entornos de desarrollo en esta rama.

 

Después de iniciar este entorno de desarrollo personalizado, verá que el IDE ahora puede usar la versión correcta de JDK. Sin embargo, los proyectos IntelliJ IDEA y Maven aún deben sincronizarse. ¡Este es el momento perfecto para usar un guión de calentamiento!

 

 

Calentar el entorno de desarrollo

 

Puede reducir el tiempo que tarda el IDE en resolver las dependencias del proyecto, crear índices y realizar otras actividades en segundo plano mediante la creación de instantáneas de preparación . En nuestro ejemplo, ejecutar  mvnw compilee indexar el proyecto nos ayudará a preparar nuestro entorno de desarrollo.

 

Las instantáneas de calentamiento se crean utilizando  Space Automation  . Al agregar un  .space.ktsarchivo, no solo puede comenzar a configurar la integración continua (CI) para su proyecto, sino también cómo se debe calentar su entorno de desarrollo.

  • Automatización de espacios

    https://www.jetbrains.com.cn/space/features/software-development.html#a-automation

 

Aquí hay un  .space.ktsarchivo de ejemplo que define un trabajo que se ejecuta todas las noches, descarga todas las ramas de Git y luego ejecuta los pasos para preparar una instantánea de preparación usando IntelliJ IDEA:

 

job("Dev Environment Warmup - Gateway") {
    startOn {
        schedule { cron("0 5 * * *") }
    }

    git {
        depth = UNLIMITED_DEPTH
        refSpec = "refs/*:refs/*"
    }

    warmup(ide = Ide.IJGateway) {
        scriptLocation = "warmup.sh"
    }
}

 

scriptLocation es opcional. Si lo omite, Space Automation clonará el repositorio Git de su proyecto y manejará la indexación del proyecto en el IDE. Si se agrega, puede especificar el nombre de la secuencia de comandos de preparación (p. ej  warmup.sh., ) y realizar alguna acción en esa secuencia de comandos (p. ej., ejecutar  mvnw compile), descargar todas las dependencias de Maven en la instantánea de preparación o ejecutar  npm install. Aquí hay un  warmup.sh guión de ejemplo:

 

#!/bin/bash
./mvnw compile

 

Tenga en cuenta que warmup.sh debe estar comprometido con su repositorio con permisos de ejecución. Puedes  git update-index --chmod=+x warmup.sh hacer esto ejecutando.

 

Una vez que Space Automation haya terminado de ejecutar el trabajo de preparación, el entorno de desarrollo recién creado utilizará el Dockerfile personalizado que creamos anteriormente y montará la instantánea de preparación que acabamos de crear, con el índice del proyecto y las dependencias listas.

Si necesita solucionar un trabajo de preparación, puede usar Space Automation para buscar registros de todos los pasos realizados y su salida de consola.

 

 

Además, desde el  menú Entornos de desarrollo del proyecto , puede administrar y eliminar instantáneas que ya no son necesarias.

 

 

¿Imágenes de contenedores, instantáneas de calentamiento o ambas?

 

Hasta ahora, hemos visto cómo personalizar la imagen del contenedor del entorno de desarrollo y cómo crear una instantánea de preparación. Pero, ¿dónde debe ejecutar qué tipo de tarea?

 

En general, las imágenes de contenedor personalizadas deben usarse para configurar el entorno y el sistema operativo, mientras que los trabajos de preparación deben usarse para tareas específicas del proyecto, como descargar dependencias binarias y preparar el IDE para el proyecto.

 

 

En conclusión

 

En este artículo, describimos cómo iniciar y personalizar un entorno de desarrollo en JetBrains Space. Con imágenes de contenedores personalizadas, puede estandarizar el entorno de desarrollo para su equipo. Con la tarea de calentamiento, puede preparar una instantánea que incluya dependencias de paquetes descargados e índices de proyectos preconstruidos, para que pueda comenzar a desarrollar más rápido con su entorno de desarrollo.

 

¡Pruebe JetBrains Space y el entorno de desarrollo! ¡Nos complace recibir sus comentarios!

https://www.jetbrains.com.cn/space/#sign-up-popup

 

Fuera del número: actualización del sitio web oficial chino de JetBrains

Recientemente, lanzamos oficialmente el  sitio web oficial chino con el nombre de dominio jetbrains.com.cn  , que le brindará una velocidad de acceso más rápida y una experiencia más fluida. JetBrains China continuará trabajando para crear soporte y servicios más convenientes para los usuarios locales. Si tienes alguna sugerencia para ayudarnos a mejorar y mejorar, por favor déjanos un mensaje de fondo.

 

Recuerde el nombre de dominio de nuestro sitio web oficial recientemente actualizado: 

jetbrains.com.cn

 

¡Gracias!

JetBrains China

 

Publicación de blog en inglés autor original: Maarten Balliauw

 

 Lectura relacionada 

"Comprensión profunda de JetBrains Gateway, desarrollo remoto fácil de iniciar.

 

 

Este artículo se comparte desde la cuenta pública de WeChat: JetBrains (JetBrainsChina).
Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Este artículo participa en el " Proyecto OSC Yuanchuang ", le invitamos a unirse y compartir con nosotros.

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5494143/blog/5452280
Recomendado
Clasificación