Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se muestra cómo usar Docker para incluir en contenedores la aplicación de Spring Boot e implementar su propia imagen de Docker en un host de Linux en el Azure App Service.
Requisitos previos
Para completar los pasos de este tutorial, necesita los siguientes requisitos previos:
- Una suscripción Azure; si aún no tiene una suscripción de Azure, active las ventajas del suscriptor de MSDN o regístrese para obtener una cuenta gratuita de Azure.
- La Interfaz de la línea de comandos (CLI) de Azure.
- Un kit de desarrollo de Java (JDK) admitido Para más información sobre los JDK disponibles para desarrollar en Azure, consulte Compatibilidad con Java en Azure y Azure Stack.
- Herramienta de compilación Apache Maven (versión 3).
- Un cliente Git.
- Un cliente de Docker.
Nota:
Debido a los requisitos de virtualización de este tutorial, no puede seguir los pasos descritos en este artículo en una máquina virtual. Debe usar un equipo físico con características de virtualización habilitadas.
Creación de la aplicación web Spring Boot on Docker Getting Started
Los siguientes pasos le guiarán por las fases necesarias para crear una aplicación web de Spring Boot sencilla y probarla de forma local.
Abra un símbolo del sistema y cree un directorio local para contener la aplicación y cambie a ese directorio; por ejemplo:
mkdir SpringBoot cd SpringBootClone el proyecto de ejemplo Spring Boot on Docker Getting Started (inicial de Spring Boot en Docker) en el directorio que ha creado, por ejemplo:
git clone https://github.com/spring-guides/gs-spring-boot-docker.gitCambie de directorio al del proyecto finalizado, por ejemplo:
cd gs-spring-boot-docker/completeCompile el archivo JAR con Maven, por ejemplo:
mvn packageUna vez creada la aplicación web, cambie el directorio al
targetdirectorio donde se encuentra el archivo JAR e inicie la aplicación web; por ejemplo:cd target java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80Pruebe la aplicación web. Para ello, navegue a ella localmente mediante un explorador web. Por ejemplo, si tiene curl disponible y ha configurado el servidor Tomcat para que se ejecute en el puerto 80:
curl http://localhostVerá el mensaje siguiente mostrado: Hello Docker World
Creación de un Azure Container Registry para usarlo como registro privado de Docker
Los siguientes pasos le muestran cómo usar Azure Portal para crear una instancia de Azure Container Registry.
Nota:
Si quiere usar la CLI de Azure en lugar de Azure Portal, siga los pasos descritos en Creación de un registro de contenedor privado de Docker con la CLI de Azure 2.0.
Vaya a Azure Portal e inicie sesión.
Después de iniciar sesión en la cuenta en el portal de Azure, siga los pasos descritos en el artículo Creación de un registro de contenedor privado de Docker mediante el portal de Azure. En los pasos siguientes se parafrasan esas instrucciones por motivos de conveniencia.
Seleccione el icono de menú nuevo, seleccione Contenedores y, a continuación, seleccione Azure Container Registry.
de Azure Container RegistryCuando aparezca la página Crear registro de contenedor , escriba Nombre del Registro, Suscripción, Grupo de recursos y Ubicación. Seleccione Crear.
Seleccione Claves de acceso en Configuración y active el interruptor Habilitado del usuario administrador.
Configura Maven para construir una imagen en tu Registro de Contenedores de Azure
Vaya al directorio del proyecto completado de la aplicación de Spring Boot (por ejemplo, C:\SpringBoot\gs-spring-boot-docker\complete o /users/robert/SpringBoot/gs-spring-boot-docker/complete ) y abra el archivo pom.xml con un editor de texto.
Actualice el conjunto
<properties>del archivo pom.xml con la versión más reciente dejib-maven-plugin, el valor del servidor de inicio de sesión y la configuración de acceso de Azure Container Registry que aparecen en la sección anterior de este tutorial. Por ejemplo:<properties> <jib-maven-plugin.version>3.2.0</jib-maven-plugin.version> <docker.image.prefix>wingtiptoysregistry.azurecr.io</docker.image.prefix> <java.version>1.8</java.version> </properties>Agregue
jib-maven-plugina la<plugins>colección en el archivo pom.xml . En este ejemplo se usa la versión 3.2.0.Especifique la imagen de base en
<from>/<image>, aquímcr.microsoft.com/openjdk/jdk:11-ubuntu. Especifique el nombre de la imagen final que se va a compilar a partir de la base en<to>/<image>.La autenticación
{docker.image.prefix}es el Servidor de inicio de sesión que se mostró anteriormente en la página del registro.{project.artifactId}es el nombre y el número de versión del archivo JAR de la primera compilación en Maven del proyecto.<plugin> <artifactId>jib-maven-plugin</artifactId> <groupId>com.google.cloud.tools</groupId> <version>${jib-maven-plugin.version}</version> <configuration> <from> <image>mcr.microsoft.com/openjdk/jdk:11-ubuntu</image> </from> <to> <image>${docker.image.prefix}/${project.artifactId}</image> </to> </configuration> </plugin>Vaya al directorio de proyecto completado de la aplicación Spring Boot y ejecute el siguiente comando para recompilar la aplicación e insertar el contenedor en el Azure Container Registry:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Nota:
El comando az acr login ... intenta iniciar sesión en Azure Container Registry. De lo contrario, debe proporcionar <username> y <password> para jib-maven-plugin. Para más información, consulte Métodos de autenticación en jib.
Cuando se usa Jib para insertar la imagen en la Azure Container Registry, la imagen no usa el Dockerfile. Para obtener más información, consulte este artículo.
Creación de una aplicación web en Linux en Azure App Service mediante la imagen de contenedor
Vaya a Azure Portal e inicie sesión.
Seleccione el icono de menú de Crear un recurso, seleccione Proceso y, después, seleccione Aplicación web.
Cuando aparezca la página Aplicación web en Linux , escriba la siguiente información:
Elija su suscripción de la lista desplegable.
Seleccione un Grupo de recursos existente o especifique un nombre para crear uno nuevo.
Escriba un nombre único para el nombre de la aplicación; por ejemplo: wingtiptoyslinux.
Especifique
Docker Containeren Publicar.En el campo Sistema Operativo , elija Linux.
Seleccione Región:
Acepte Plan de Linux, elija un Plan de App Service existente o seleccione Crear nuevo para crear uno nuevo.
Seleccione Siguiente: Docker.
En la página Aplicación web, seleccione Docker y especifique la siguiente información:
Seleccione Contenedor único.
Registro: Elija el contenedor, por ejemplo: wingtiptoysregistry.
Imagen: Seleccione la imagen creada anteriormente, por ejemplo: spring-boot-docker.
Etiqueta: Elija la etiqueta de la imagen, por ejemplo: más reciente.
Comando de inicio: manténgalo en blanco, ya que la imagen ya tiene el comando de inicio.
Después de escribir toda la información anterior, seleccione Revisar y crear.
- Selecciona Revisar + crear.
Revise la información y seleccione Crear.
Cuando finalice la implementación, seleccione Go to resource (Ir al recurso). La página de implementación muestra la URL para acceder a la aplicación.
Nota:
Azure asigna automáticamente solicitudes de Internet al servidor tomcat incrustado que se ejecuta en el puerto 80. Sin embargo, si configura el servidor de Tomcat insertado para que se ejecute en el puerto 8080 o en un puerto personalizado, debe agregar una variable de entorno a la aplicación web que defina el puerto para el servidor de Tomcat incrustado. Para agregar la variable de entorno, siga estos pasos:
Vaya a Azure Portal e inicie sesión.
Seleccione el icono de Web Appsy seleccione su aplicación en la página Servicios de Aplicaciones.
En el panel de navegación de la izquierda, seleccione Configuración.
En la sección Configuración de la aplicación, agregue una nueva opción de configuración llamada WEBSITES_PORT y especifique como valor su número de puerto personalizado.
Seleccione Aceptar. Después, seleccione Guardar.
Limpieza de recursos
Cuando ya no necesite los recursos, use el portal de Azure para eliminarlos. La eliminación de los recursos le ayuda a evitar cargos inesperados.
Pasos siguientes
Para más información acerca de Spring y Azure, vaya al centro de documentación de Azure.
Consulte también
Para obtener más información sobre el uso de aplicaciones de Spring Boot en Azure, consulte los siguientes artículos:
Para más información sobre el uso de Azure con Java, consulte la Azure para desarrolladores de Java y el Trabajando con Azure DevOps y Java.
Para obtener más información sobre el proyecto de ejemplo Spring Boot en Docker, vea Spring Boot on Docker Getting Started (Introducción a Spring Boot en Docker).
Para obtener ayuda para dar sus primeros pasos con sus propias aplicaciones de Spring Boot, consulte Spring Initializr en https://start.spring.io/.
Para más información sobre cómo empezar a crear una sencilla aplicación de Spring Boot, consulte Spring Initializr en https://start.spring.io/.
Para obtener más ejemplos de cómo usar imágenes personalizadas de Docker con Azure, consulte Uso de una imagen personalizada de Docker para Azure Web App en Linux.