Implementación con Dockerfile
Normalmente, no necesitas escribir un Dockerfile
por tu cuenta. Zeabur actualmente ofrece métodos de implementación rápida para varios frameworks populares, pero si tu proyecto no utiliza estos frameworks o deseas definir tu propio método de implementación, puedes usar un Dockerfile
para implementarlo.
Creando un Dockerfile
Crea un archivo llamado Dockerfile
o dockerfile
en el directorio raíz de tu proyecto y escribe en él tu método de implementación. Finalmente, asegúrate de haber expuesto el PORT
correspondiente.
Zeabur detectará automáticamente si tu proyecto tiene un Dockerfile
. Si es así, implementará tu proyecto utilizando Docker.
Una vez que comience la implementación, podrás ver el icono de Docker arriba, lo que significa que tu proyecto ha sido implementado utilizando Docker.
Implementación sin usar Dockerfile
Si tu proyecto tiene un Dockerfile pero no deseas usar este Dockerfile en Zeabur (por ejemplo, dejar que Zeabur decida el mejor método de implementación para este proyecto), puedes configurar ZBPACK_IGNORE_DOCKERFILE=true
en las variables de entorno, o agregar lo siguiente a zbpack.json
:
{
"ignore_dockerfile": true
}
Zeabur entonces ignorará tu Dockerfile y determinará automáticamente el método de implementación.
Variables de entorno
Si tu Dockerfile
necesita usar variables de entorno, puedes hacer clic en Variables de entorno en la página del servicio para agregarlas. Para más configuraciones, consulta Variables de entorno.
Si tu Dockerfile
está escrito en una sola etapa, o si tus variables de entorno solo necesitan usarse en la etapa final, no necesitas escribir ENV
manualmente. Zeabur lo agregará automáticamente por ti.
ARG
Sin embargo, si tu Dockerfile
está escrito en varias etapas (multi-stage) y necesitas establecer variables de entorno antes de la construcción, puedes usar ARG
para configurarlas.
Aquí tomamos Node.js y Nginx como ejemplo para escribir un Dockerfile
para la implementación.
FROM node:18-alpine AS builder
WORKDIR /app
COPY . .
## El `BUILDTIME_ENV_EXAMPLE` aquí será configurado automáticamente antes de la construcción
ARG BUILDTIME_ENV_EXAMPLE
ENV BUILDTIME_ENV_EXAMPLE=${BUILDTIME_ENV_EXAMPLE}
RUN npm install && \
npm run build
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/configfile.template
COPY --from=builder /app/dist /usr/share/nginx/html
ENV \
PORT=8080 \
HOST=0.0.0.0
EXPOSE 8080
CMD sh -c "envsubst '\$PORT' < /etc/nginx/conf.d/configfile.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
Especificar Dockerfile para implementar en Zeabur
Para implementar un proyecto utilizando un Dockerfile específico, nombra el Dockerfile como [service-name].Dockerfile
o Dockerfile.[service-name]
. Por ejemplo, si tienes un archivo Dockerfile.storage
en tu proyecto y el nombre de tu servicio es storage
, Zeabur implementará el servicio storage
utilizando este Dockerfile.
También puedes especificar la variable de entorno ZBPACK_DOCKERFILE_NAME
o agregar lo siguiente a zbpack.json
:
{
"dockerfile": {
"name": "storage"
}
}
Por ejemplo, si configuras ZBPACK_DOCKERFILE_NAME=storage
en tu servicio, Zeabur usará Dockerfile.storage
como el Dockerfile para implementar el servicio storage
.
Docker Compose
Actualmente, Zeabur no admite la implementación desde un archivo YAML de Docker Compose.
Puedes convertir tu archivo Docker Compose en un archivo YAML de plantilla de Zeabur. Para más detalles, consulta Creando plantillas desde YAML. Si necesitas ayuda, no dudes en contactarnos en comunidad.