Este repositorio es una base para arrancar proyectos nuevos con una configuracion lista para desarrollo en contenedor y despliegue de imagenes Docker.
Incluye:
- Devcontainer generico con Docker-in-Docker (DinD).
- Workflow de Docker publish que sube imagenes automaticamente a GHCR.
- Ejemplos de
docker-composeyDockerfilepara iniciar rapido.
La idea es usar este repo como punto de partida: agregas tu stack (Node, Python, etc.), montas tus servicios de apoyo con Docker, y dejas que el pipeline publique la imagen de tu app.
- Devcontainer:
.devcontainer/devcontainer.json- Base Debian Bullseye.
- Feature de Docker-in-Docker habilitada.
- Preparado para ejecutar
dockerdentro del entorno de desarrollo.
- Deploy workflow:
.github/workflows/deploy.yml- Ejecuta en push a
main. - Llama al workflow de publish.
- Ejecuta en push a
- Docker publish workflow:
.github/workflows/docker-publish.yml- Construye y publica imagen multi-arquitectura (
amd64,arm64) enghcr.io/<owner>/<repo>.
- Construye y publica imagen multi-arquitectura (
- Compose de ejemplo:
samples/docker-compose.yml - Dockerfile de ejemplo:
samples/Dockerfile
Estos archivos son solo referencia. Puedes copiarlos/adaptarlos a:
docker-compose.ymlpara servicios de apoyo (db, cache, etc.).Dockerfilepara la aplicacion principal.
- Abre el proyecto en el devcontainer.
- Instala el runtime de tu proyecto (Node, Python, etc.).
- Levanta servicios auxiliares con Docker (
docker compose up -d). - Desarrolla tu aplicacion.
- Haz push a
mainy el workflow publicara la imagen automaticamente.
Si tu proyecto necesita servicios adicionales (por ejemplo PostgreSQL, Redis, RabbitMQ), la idea de este starter es correrlos tambien con Docker desde el mismo entorno del devcontainer, aparte del servicio principal que estes programando.