Saltar al pie de página
USANDO IRONSECUREDOC

Docker Build Push Action (Cómo funciona para desarrolladores)

¿Qué es Docker?

Docker es una potencia de código abierto que facilita la creación, implementación y gestión de aplicaciones al colocarlas en contenedores ligeros y portátiles. Los contenedores empaquetan una aplicación y sus dependencias, incluyendo bibliotecas, archivos de configuración, y más, de tal manera que pueda ejecutarse incluso en diversos entornos. Esto elimina todos los problemas de compatibilidad, lo que significa que la aplicación actuará de la misma manera tanto en la computadora portátil de un desarrollador como en un servidor o en la nube. Simplifica el proceso de desarrollo, pruebas y escalado al construir las herramientas de manera eficiente, enviar y ejecutar contenedores, manejando así los recursos de forma más sencilla.

Docker Build Push Action (Cómo funciona para desarrolladores): Figura 1 - Docker

¿Qué es una imagen Docker?

Las imágenes son los planos tipo Docker que llevan los entornos de ejecución consistentes. Los desarrolladores pueden utilizar imágenes listas para usar desde el Docker Hub, un registro público, o crear sus propias imágenes Docker. Herramientas como Docker Compose y Kubernetes amplían las capacidades de Docker aún más al agregar orquestaciones simples de configuraciones de múltiples contenedores o manejar necesidades de escalado complejas en más plataformas.

¿Por qué utilizar la acción Docker Build Push?

Automatización sin fricciones

Construir y enviar imágenes Docker manualmente está expuesto, es propenso a errores y consume tiempo. Automatizar estos pasos asegura predictibilidad y añade horas al final de la línea, especialmente cuando el equipo escala o cuando las actualizaciones son más frecuentes.

Integración sin fricciones

La acción Docker Build Push funciona de forma inmediata con los repositorios de GitHub para crear flujos de trabajo relacionados con eventos como empujes de código, solicitudes de extracción o un cronograma.

Construcción estándar de imágenes

La automatización asegura que cada vez que se construyan imágenes Docker, sean iguales; así, reduciendo errores/discrepancias en múltiples entornos como desarrollo, prueba y producción.

Despliegue sencillo

Con la construcción automática de imágenes Docker con la construcción, y su envío a los repositorios, el despliegue puede ser relativamente sencillo. Herramientas como Kubernetes o Docker Swarm pueden ser usadas para sacar o construir imágenes multi-plataforma directamente desde el registro Docker, y así reducir el tiempo de inactividad.

Cómo funciona la acción push de compilación de Docker

La acción Build and Push Docker realiza tres cosas básicas:

  1. Configurar el inicio de sesión de Docker: Autenticación del registro de contenedores para enviar imágenes Docker de manera segura.
  2. Construcción de la imagen: Ejecuta comandos de construcción Docker usando un archivo Dockerfile que contiene instrucciones.
  3. Envío al registro: Envía la imagen construida a un registro de contenedor objetivo.

Estos pasos se definen en un archivo de flujo de trabajo de GitHub Actions (.github/workflows/your-workflow.yml), donde se especifican disparadores, configuraciones de construcción y credenciales de registro.

Implementar la acción de push de compilación de Docker

1: Preparar tu repositorio

  • Añadir un archivo Dockerfile que describa la aplicación containerizada.
  • Añadir cualquier archivo de configuración o script requerido para la construcción.
# Use Node.js as the base image
FROM node:14

# Set the working directory
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json .
RUN npm install

# Copy the application code
COPY . .

# Expose the application’s port
EXPOSE 3000

# Start the application
CMD ["npm", "start"]

2: Añadir credenciales de registro como secretos de GitHub

Para construir y enviar imágenes Docker a un registro de contenedor, necesitas credenciales. Añade estos como secretos de GitHub:

  • Ingresa en la configuración de tu repositorio en GitHub.
  • Ve a Secretos y Variables > Acciones.

Añade los siguientes secretos:

  • USERNAME: Tu nombre de usuario de Docker Hub.
  • PASSWORD: Tu token de acceso o contraseña de Docker Hub.

Para otros registros, esto es similar pero a veces requiere credenciales adicionales, por ejemplo, AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY para Amazon ECR.

3: Crear el flujo de trabajo de GitHub Actions

Añadir la línea de abajo en el archivo de flujo de trabajo YAML en .github/workflows/docker-build-push.yml.

name: Docker Build and Push

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # Step 1: Check out the repository
      - name: Checkout code
        uses: actions/checkout@v3

      # Step 2: Log in to Docker Hub
      - name: Log in to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}

      # Step 3: Build and push the Docker image
      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: username/repository:latest
name: Docker Build and Push

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # Step 1: Check out the repository
      - name: Checkout code
        uses: actions/checkout@v3

      # Step 2: Log in to Docker Hub
      - name: Log in to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}

      # Step 3: Build and push the Docker image
      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: username/repository:latest
YAML

Enviar a Main: El flujo de trabajo se activará cada envío que ocurra en la rama principal.

Revisar código: Utilizar la acción actions/checkout para revisar el repositorio.

Iniciar sesión en el registro: Autenticarse con Docker Hub usando los secretos proporcionados.

Construir y Enviar: Ejecuta la Acción Docker Build Push que construirá la imagen desde el directorio actual hasta el contexto y la enviará a nombredeusuario/repositorio: última.

Enviar el archivo del flujo de trabajo a tu repositorio. Con un simple envío, el flujo de trabajo se activará para construir la imagen y enviarla a tu registro especificado.

¿Qué es IronSecureDoc?

IronSecureDoc es un producto recientemente desarrollado por Iron Software diseñado específicamente para asegurar documentos digitales, principalmente PDFs, a través de una robusta encriptación y controles. Esto permitirá aún más a una organización instalar protocolos de cifrado avanzados como AES-256 para que dicha información sensible no pueda ser vista sin permiso autorizado. Eso significa que el documento mencionado solo podrá ser abierto por el usuario autorizado porque la impresión, edición y copia del mismo tienen restricciones junto con permisos personalizados. Además, la protección por contraseña y las firmas digitales mejoran la seguridad e integridad en los documentos e inserción de marcas de agua.

Docker Build Push Action (Cómo funciona para desarrolladores): Figura 2 - IronSecureDoc: El servidor de seguridad y cumplimiento de PDF

IronSecureDoc es amigable para los desarrolladores y puede alojar cómodamente aplicaciones a través de Docker u otros entornos de programación, por lo tanto, debería poder adaptarse a muchos flujos de trabajo empresariales. Por ejemplo, en los sectores de salud, financiero y legal, la confidencialidad de los documentos significa todo. IronSecureDoc combina las características de encriptación y control de documentos dentro de una organización asegurando su custodia que permite cumplimiento, compartición fácil y segura con un socio o cliente externo.

Cómo funciona IronSecureDoc

IronSecureDoc se entrega como un contenedor Docker y proporciona exposición a las funcionalidades de construcción por medio de endpoints API que lo mantendrán escalable y uniforme. Los desarrolladores extraen una imagen Docker preconstruida de IronSecureDoc de un registro de contenedores y la incluyen en sus aplicaciones.

Flujo de trabajo de documentos con IronSecureDoc

  • Crear y enviar el contenedor IronSecureDoc usando Docker Build Push Action.
  • Despliegue del mismo contenedor en una plataforma en la nube como AWS ECS o Kubernetes.
  • Integrar tu aplicación para comunicarse con IronSecureDoc para cualquier operación de documento.

Instalar y ejecutar IronSecureDoc

Para extraer la imagen Docker de IronSecureDoc del repositorio de GitHub a continuación, en el símbolo del sistema o en una ventana de terminal abierta, ejecuta el siguiente comando.

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker Build Push Action (Cómo funciona para desarrolladores): Figura 3 - Extraer Imagen Docker

Después de extraer una imagen del contenedor Docker, tenemos otro comando para iniciar IronSecureDoc, un contenedor operativo.

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

El comando Docker run anterior creará una instancia de contenedor de IronSecureDoc.

Uso de IronSecureDoc

La API REST de IronSecureDoc se ha discutido en otro lugar, pero básicamente, permite al usuario redactar, certificar y encriptar documentos listos para usar al instalar y utilizar Docker. Aquí está el enlace a la documentación.

Docker Build Push Action (Cómo funciona para desarrolladores): Figura 4 - REST API

También podríamos encriptar un documento publicando en la API de IronSecureDoc así:

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

Esto dirigirá automáticamente el documento a IronSecureDoc, donde será correctamente encriptado.

Conclusión

Todo comienza con Docker Build Push Action e IronSecureDoc. Combina dos herramientas muy poderosas que desbloquean la capacidad de contenerizar flujos de trabajo con desarrollo automatizado y escalable de manera segura. Docker Build Push Action se encarga de la construcción y despliegue automatizado en el proceso de desarrollo de imágenes de contenedores, e IronSecureDoc maneja la seguridad robusta de documentos dentro de esos contenedores. Todo se reduce a canales simplificados desde desarrolladores y rendimiento confiable a través de los entornos. Ya sea que estés gestionando un despliegue de aplicaciones o asegurando documentos sensibles, estas herramientas en tu flujo de trabajo te moverán hacia un desarrollo de software moderno y eficiente.

IronSecureDoc: donde se pueden agregar características de seguridad específicas para documentos, incluyendo cifrado de archivos, controles de acceso, y autenticación de la autenticidad del documento mediante firmas digitales. Juntos, los certificados Docker e IronSecureDoc proporcionan seguridad de ciclo completo, protegiendo todo, desde la infraestructura hasta los datos sensibles almacenados. Para obtener más información sobre la licencia de IronSecureDoc, visita la página de licencias. Para información sobre muchos de los productos de Iron Software, sigue este enlace a la biblioteca de la suite.

Preguntas Frecuentes

¿Cómo puedo convertir HTML a PDF en C#?

Puedes usar el método RenderHtmlAsPdf de IronPDF para convertir cadenas de HTML en PDFs. También puedes convertir archivos HTML a PDFs usando RenderHtmlFileAsPdf.

¿Qué es Docker?

Docker es una plataforma de código abierto que simplifica la construcción, implementación y gestión de aplicaciones mediante el uso de contenedores. Estos contenedores empaquetan aplicaciones con sus dependencias, asegurando un comportamiento consistente en diferentes entornos.

¿Cómo simplifica Docker Build Push Action los procesos de flujo de trabajo?

La acción de construcción y envío de Docker automatiza la construcción y el envío de imágenes Docker en repositorios de GitHub, reduciendo errores y ahorrando tiempo. Crea flujos de trabajo desencadenados por eventos como envíos de código o solicitudes de extracción.

¿Por qué Docker es útil para los desarrolladores?

Docker es útil para los desarrolladores porque encapsula aplicaciones en contenedores, asegurando un rendimiento consistente y mitigando problemas de compatibilidad en diferentes entornos. Esto agiliza los procesos de desarrollo, implementación y gestión.

¿Cuáles son las ventajas de usar contenedores Docker?

Los contenedores Docker ofrecen ventajas como portabilidad, escalabilidad y consistencia en diferentes entornos. Encapsulan aplicaciones con sus dependencias, lo que reduce problemas de compatibilidad y mejora la eficiencia de implementación.

¿Cómo asegura la seguridad de documentos IronSecureDoc?

IronSecureDoc asegura documentos digitales utilizando técnicas de cifrado robustas como AES-256, junto con características como protección con contraseña y firmas digitales. Es especialmente útil en sectores que requieren alta confidencialidad, como la salud y las finanzas.

¿Puede integrarse IronSecureDoc en flujos de trabajo existentes?

Sí, IronSecureDoc puede integrarse en flujos de trabajo existentes ya que opera como un contenedor Docker y proporciona funcionalidades a través de endpoints API. Esto lo hace flexible y fácil de usar en varios escenarios de implementación.

¿Cómo mejora la eficiencia de implementación Docker Build Push Action?

Docker Build Push Action mejora la eficiencia de implementación automatizando el proceso de construcción y envío de imágenes Docker, asegurando la creación de imágenes consistentes y reduciendo el tiempo de inactividad a través de la integración con plataformas como Kubernetes.

¿Cuál es el papel de las imágenes Docker en la implementación de aplicaciones?

Las imágenes Docker sirven como planos para los contenedores, conteniendo la aplicación y sus dependencias. Aseguran consistencia en diferentes entornos, haciéndolas cruciales para una implementación de aplicaciones confiable.

¿Cómo automatizo la construcción de imágenes Docker con GitHub Actions?

Para automatizar la construcción de imágenes Docker con GitHub Actions, cree un archivo de flujo de trabajo que especifique desencadenadores como envíos de código, use acciones de inicio de sesión y construcción de Docker, y envíe la imagen construida a un registro. Esta automatización agiliza el proceso de construcción e implementación.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más