Contenido: # Guía Docker de Worklenz
La gestión eficiente de proyectos comienza con herramientas que no solo son potentes, sino también fáciles de implementar. Docker, una plataforma líder para la implementación de aplicaciones contenerizadas, está transformando la forma en que las empresas gestionan las instalaciones de software. Al simplificar configuraciones complejas y garantizar la consistencia en diferentes entornos, Docker se ha convertido en una herramienta esencial para los equipos modernos.
Para Worklenz, Docker ofrece una experiencia de implementación sin problemas adaptada a las necesidades tanto de las startups como de las empresas. Con su portabilidad, escalabilidad y eficiente gestión de recursos, Docker elimina los desafíos de las instalaciones tradicionales, permitiendo a los equipos centrarse en lo que realmente importa, lograr el éxito del proyecto.
Descubre cómo la implementación de Worklenz con Docker puede elevar la eficiencia de tu equipo y simplificar tus operaciones de TI.
Antes de comenzar, asegúrate de tener lo siguiente:
Si Docker aún no está instalado, sigue esta guía para configurarlo primero. Si Gitbash aún no está instalado, sigue esta guía para configurar gitbash en tu ordenador
Abre tu terminal (o Símbolo del sistema, PowerShell o Git Bash) y ejecuta el siguiente comando para clonar el repositorio en tu máquina local:
git clone https://github.com/Worklenz/worklenz.git
Si Git no está instalado, puedes descargar manualmente los archivos. Visita el repositorio de Worklenz, haz clic en el botón “Code” y selecciona “Download ZIP.” Extrae el archivo ZIP descargado y coloca los archivos en una carpeta llamada worklenz en tu ordenador.
Navega hasta la carpeta del proyecto:
cd worklenz
Para configurar la aplicación para que se ejecute con Docker, sigue estos pasos:
.env
En el directorio del proyecto, navega hasta la carpeta backend y crea el archivo .env
copiando la plantilla proporcionada:
cd worklenz-backend && cp .env.template .env
.env
con las Credenciales Necesarias
# Servidor
NODE_ENV=development
PORT=3000
SESSION_NAME=worklenz.sid
SESSION_SECRET="TU_SECRETO_DE_SESION_AQUI"
COOKIE_SECRET="TU_SECRETO_DE_COOKIE_AQUI"
# CORS
SOCKET_IO_CORS=http://localhost:4200
SERVER_CORS=*
# Base de datos
DB_USER=worklenz_backend
DB_PASSWORD=contraseñasegura123
DB_NAME=worklenz_db
DB_HOST=worklenz_db
DB_PORT=5432
DB_MAX_CLIENTS=50
# Inicio de sesión con Google
GOOGLE_CLIENT_ID="12345.apps.googleusercontent.com"
GOOGLE_CLIENT_SECRET="tu-secreto-de-cliente-de-google"
GOOGLE_CALLBACK_URL="http://localhost:3000/secure/google/verify"
LOGIN_FAILURE_REDIRECT="/"
LOGIN_SUCCESS_REDIRECT="http://localhost:4200/auth/authenticate"
# CLI
ANGULAR_DIST_DIR="/ruta/worklenz_frontend/dist/worklenz" # Especifica la ubicación donde se colocará la aplicación Angular construida
ANGULAR_SRC_DIR="/ruta/worklenz_frontend"
BACKEND_PUBLIC_DIR="/ruta/worklenz_backend/src/public"
BACKEND_VIEWS_DIR="/ruta/worklenz_backend/src/views/admin"
COMMIT_BUILD_IMMEDIATELY=true
# Host
HOSTNAME=localhost:4200
# SLACK
SLACK_WEBHOOK="tu-url-de-webhook-de-slack"
USE_PG_NATIVE=true
# SECRETO JWT
JWT_SECRET="TU_SECRETO_JWT_AQUI"
# AWS
AWS_REGION="us-west-2"
AWS_ACCESS_KEY_ID="TU_ID_DE_ACCESO_A_AWS_AQUI"
AWS_SECRET_ACCESS_KEY="TU_CLAVE_SECRETA_DE_ACCESO_A_AWS_AQUI"
# Credenciales S3
REGION="us-west-2"
BUCKET="nombre-de-tu-bucket"
S3_URL="URL_S3_AQUI"
S3_ACCESS_KEY_ID="ID_DE_ACCESO_A_S3_AQUI"
S3_SECRET_ACCESS_KEY="CLAVE_SECRETA_DE_ACCESO_A_S3_AQUI"
# Correo electrónico SES
SOURCE_EMAIL="Worklenz <noreply@worklenz.com>"
Inicia tu motor Docker si aún no lo has hecho Usa Docker Compose para construir e iniciar los contenedores:
docker-compose up --build -d
Este comando hará lo siguiente:
Detener y Eliminar Contenedores
Para detener todos los contenedores en ejecución asociados con el proyecto Worklenz, puedes usar el siguiente comando:
docker-compose down
Si quieres eliminar los contenedores, así como las imágenes y volúmenes para liberar espacio en disco, puedes usar:
docker system prune -a
Una vez que los contenedores estén en funcionamiento, puedes acceder a la Aplicación Worklenz a través de lo siguiente:
Al configurar Worklenz con Docker, puedes encontrar algunos problemas comunes. Aquí te presentamos algunas soluciones para resolverlos:
Solución para Linux/macOS: Comprueba los registros del contenedor Docker para detectar cualquier error:
docker-compose logs
Si ves errores relacionados con variables de entorno faltantes u otros problemas, asegúrate de que tu archivo .env esté correctamente configurado y todos los campos necesarios estén llenos.
También puedes comprobar si hay algún servicio en conflicto o puertos en uso:
sudo lsof -i :3000
Si el puerto 3000 está en uso, detén el proceso que lo está utilizando:
sudo kill -9 <PID>
Reinicia los contenedores Docker:
docker-compose down
docker-compose up --build -d
Solución para Windows:
Comprueba los registros del contenedor Docker para detectar cualquier error:
docker-compose logs
Si ves errores relacionados con variables de entorno faltantes u otros problemas, verifica tu archivo .env.
Para comprobar si el puerto 3000 está en uso, ejecuta:
netstat -ano | findstr :3000
Encuentra el PID (ID del Proceso) en la salida y detén el proceso usando:
taskkill /PID <PID> /F
Reinicia los contenedores Docker:
docker-compose down
docker-compose up --build -d
Solución para Linux/macOS:
Asegúrate de que el contenedor de la base de datos esté en funcionamiento:
docker ps
Comprueba la configuración de la base de datos en tu archivo .env, especialmente:
DB_HOST DB_USER DB_PASSWORD
Si el contenedor de la base de datos no está funcionando, intenta reiniciarlo:
docker-compose down
docker-compose up --build -d
Solución para Windows:
Comprueba si el contenedor de la base de datos está en funcionamiento:
docker ps
Verifica la configuración de la base de datos en tu archivo .env.
Reinicia los contenedores si es necesario:
docker-compose down
docker-compose up --build -d
Solución para Linux/macOS:
Si recibes un error que indica que un puerto ya está en uso (por ejemplo, el puerto 3000), puedes encontrar el proceso que está utilizando el puerto:
sudo lsof -i :3000
Si un proceso está utilizando el puerto, mátalo con:
sudo kill -9 <PID>
Alternativamente, puedes cambiar el puerto en tu archivo .env y reiniciar los contenedores.
Solución para Windows:
Comprueba si el puerto 3000 está en uso:
netstat -ano | findstr :3000
Encuentra el PID (ID del Proceso) en la salida, luego termina el proceso:
taskkill /PID <PID> /F
También puedes cambiar el puerto en tu archivo .env y reiniciar los contenedores.
Solución para Linux/macOS:
Si encuentras errores de permisos, asegúrate de que los archivos y directorios necesarios sean accesibles por Docker. Comprueba los permisos de los archivos:
ls -l
Ajusta los permisos de los archivos usando:
sudo chmod -R 755 <directorio>
Solución para Windows:
Si encuentras errores de permisos, asegúrate de que Docker Desktop tenga acceso a los directorios necesarios. Haz clic con el botón derecho en la carpeta, selecciona Propiedades y ve a la pestaña Seguridad para comprobar los permisos.
Solución para Linux/macOS:
Asegúrate de que tu archivo .env esté correctamente configurado para servicios externos como AWS o Google OAuth. Comprueba que las claves y URLs requeridas sean correctas.
Puedes probar si los servicios externos son accesibles utilizando curl:
curl https://tu-url-de-servicio.com
Solución para Windows:
De manera similar, verifica que tu archivo .env esté correctamente configurado.
Prueba la conectividad usando curl (si está instalado) o usa un navegador web para comprobar si los servicios externos son accesibles.
Solución para Linux/macOS:
Si Docker se está ejecutando lentamente, asegúrate de que tu