Merge pull request #4 from marcogll/test-13602759974640937846

feat: Add Docker infrastructure for Agent 1
This commit is contained in:
Marco Gallegos
2025-12-13 15:41:12 -06:00
committed by GitHub
5 changed files with 151 additions and 12 deletions

9
.env.example Normal file
View File

@@ -0,0 +1,9 @@
# Application configuration
NODE_ENV=development
# Database configuration
DB_HOST=db
DB_USER=postgres
DB_PASSWORD=secret
DB_NAME=hr_platform
DB_PORT=5432

74
.gitignore vendored Normal file
View File

@@ -0,0 +1,74 @@
# Dependencies
/node_modules
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-temporary-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
.env.production
# Mac files
.DS_Store
# VSCode files
.vscode/

21
Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
# Usar una imagen base oficial de Node.js
ARG NODE_VERSION=18
FROM node:${NODE_VERSION}-alpine
# Establecer el directorio de trabajo en el contenedor
WORKDIR /usr/src/app
# Copiar package.json y package-lock.json (si existe)
COPY package*.json ./
# Instalar las dependencias del proyecto
RUN npm install
# Copiar el resto del código de la aplicación
COPY . .
# Exponer el puerto en el que la aplicación se ejecutará
EXPOSE 3011
# Comando para iniciar la aplicación
CMD [ "node", "src/index.js" ]

34
docker-compose.yml Normal file
View File

@@ -0,0 +1,34 @@
version: '3.8'
services:
api:
build: .
ports:
- "3011:3011"
volumes:
- .:/usr/src/app
networks:
- app-network
env_file:
- .env
db:
image: postgres:13
restart: always
environment:
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: ${DB_NAME}
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
postgres-data:

View File

@@ -1,18 +1,19 @@
# Bitácora del Agente 1 Infraestructura & DevOps # Bitácora del Agente 1 Infraestructura & DevOps
Este documento registra las decisiones, cambios y observaciones del **Agente 1**. ## Fecha: 2023-10-27
Su propósito es mantener un historial claro y auditable de las tareas y soluciones implementadas. ### Cambios Realizados
--- * **Creación de `Dockerfile`:**
* Se ha añadido un `Dockerfile` para construir la imagen del servicio de Node.js.
* La imagen se basa in `node:18-alpine` para mantenerla ligera.
* Se exponen el puerto 3011 y se define el comando de inicio `node src/index.js`.
## Entradas de Bitácora * **Creación de `docker-compose.yml`:**
* Se ha creado un archivo `docker-compose.yml` para orquestar los servicios de la aplicación.
* Define dos servicios: `api` (el backend de Node.js) y `db` (una base de datos PostgreSQL).
* Configura una red `app-network` para la comunicación entre servicios.
* Se define un volumen `postgres-data` para la persistencia de los datos de la base de datos.
### [Fecha] - Tarea/Decisión * **Creación de `.env.example`:**
* Se ha añadido un archivo `.env.example` con las variables de entorno necesarias para la configuración de la base de datos y la aplicación.
* **Contexto:** [Descripción del requerimiento o problema]
* **Acción/Implementación:** [Qué se hizo o cómo se implementó]
* **Resultado:** [Cuál fue el resultado, ej. endpoint creado, test pasado]
* **Observaciones:** [Notas adicionales, dependencias, problemas encontrados]
---