Skip to content

DigitalOcean es una plataforma en la nube que proporciona una variedad de servicios para construir y desplegar aplicaciones.

En esta guía, desplegaremos un servidor HTTP de Bun en DigitalOcean usando un Dockerfile.

NOTE

Antes de continuar, asegúrate de tener:

Crear un nuevo Registro de Contenedores de DigitalOcean

Crea un nuevo Registro de Contenedores para almacenar la imagen de Docker.

A través del panel de control de DigitalOcean

En el panel de control de DigitalOcean, ve a Container Registry e ingresa los detalles para el nuevo registro.

Asegúrate de que los detalles sean correctos, luego haz clic en Create Registry.

A través de la CLI de DigitalOcean
bash
doctl registry create bun-digitalocean-demo
txt
Name                     Endpoint                                           Region slug
bun-digitalocean-demo    registry.digitalocean.com/bun-digitalocean-demo    sfo2

Deberías ver el nuevo registro en el panel de registro de DigitalOcean:

Crear un nuevo Dockerfile

Asegúrate de estar en el directorio que contiene tu proyecto, luego crea un nuevo Dockerfile en la raíz de tu proyecto. Este archivo contiene las instrucciones para inicializar el contenedor, copiar los archivos de tu proyecto local, instalar dependencias e iniciar la aplicación.

docker
# Usar la imagen oficial de Bun para ejecutar la aplicación
FROM oven/bun:debian

# Establecer el directorio de trabajo en `/app`
WORKDIR /app

# Copiar el package.json y bun.lock dentro del contenedor
COPY package.json bun.lock ./

# Instalar las dependencias
RUN bun install --production --frozen-lockfile

# Copiar el resto de la aplicación dentro del contenedor
COPY . .

# Exponer el puerto (DigitalOcean establecerá la variable de entorno PORT)
EXPOSE 8080

# Ejecutar la aplicación
CMD ["bun", "index.ts"]

NOTE

Asegúrate de que el comando de inicio corresponda al punto de entrada de tu aplicación. Esto también puede ser `CMD ["bun", "run", "start"]` si tienes un script de inicio en tu `package.json`.

Esta imagen instala dependencias y ejecuta tu aplicación con Bun dentro de un contenedor. Si tu aplicación no tiene dependencias, puedes omitir la línea RUN bun install --production --frozen-lockfile.

Crea un nuevo archivo .dockerignore en la raíz de tu proyecto. Este archivo contiene los archivos y directorios que deben ser excluidos de la imagen del contenedor, como node_modules. Esto hace que tus builds sean más rápidos y pequeños:

docker
node_modules
Dockerfile*
.dockerignore
.git
.gitignore
README.md
LICENSE
.vscode
.env
# Cualquier otro archivo o directorio que quieras excluir

Autenticar Docker con el registro de DigitalOcean

Antes de construir y enviar la imagen de Docker, autentica Docker con el Registro de Contenedores de DigitalOcean:

bash
doctl registry login
txt
Successfully authenticated with registry.digitalocean.com

NOTE

Este comando autentica Docker con el registro de DigitalOcean usando tus credenciales de DigitalOcean. Sin este paso, el comando de construcción y envío fallará con un error de autenticación 401.

Construir y enviar la imagen de Docker al registro de DigitalOcean

Asegúrate de estar en el directorio que contiene tu Dockerfile, luego construye y envía la imagen de Docker al registro de DigitalOcean en un solo comando:

bash
docker buildx build --platform=linux/amd64 -t registry.digitalocean.com/bun-digitalocean-demo/bun-digitalocean-demo:latest --push .

NOTE

Si estás construyendo en una Mac con ARM (M1/M2), debes usar `docker buildx` con `--platform=linux/amd64` para asegurar la compatibilidad con la infraestructura de DigitalOcean. Usar `docker build` sin el flag de plataforma creará una imagen ARM64 que no se ejecutará en DigitalOcean.

Una vez que se envía la imagen, deberías verla en el panel de registro de DigitalOcean:

Crear un nuevo proyecto de App Platform de DigitalOcean

En el panel de control de DigitalOcean, ve a App Platform > Create App. Podemos crear un proyecto directamente desde la imagen del contenedor.

Asegúrate de que los detalles sean correctos, luego haz clic en Next.

Revisa y configura las opciones de recursos, luego haz clic en Create app.

Visitar tu aplicación en vivo

🥳 ¡Tu aplicación está ahora en vivo! Una vez que se crea la aplicación, deberías verla en el panel de App Platform con la URL pública.

Bun por www.bunjs.com.cn editar