Ir al contenido principal

Docker Compose

En esta guía, desplegarás MyEMS con Docker Compose creando e iniciando todos los servicios con un solo comando.

Requisitos previos

  • Docker, docker-compose y npm instalados en el host.
  • Servidor MySQL instalado con usuario 'root' y contraseña '!MyEMS1'.
  • La base de datos MySQL debe ser accesible desde el host donde se ejecuta Docker Engine.

Configuración

Consejo

El "host" se refiere al servidor donde se ejecuta Docker Engine. La IP y las contraseñas mostradas son ejemplos, modifícalas según corresponda.

----
Host IP192.168.0.1
Database IP192.168.0.2
Database Userroot
Database Password!MyEMS1

Instalación

  1. Clona el repositorio
git clone https://github.com/myems/myems.git
  1. Importa el esquema de la base de datos
cd myems/database/install
mysql -u root -p < myems_billing_db.sql
mysql -u root -p < myems_carbon_db.sql
mysql -u root -p < myems_energy_baseline_db.sql
mysql -u root -p < myems_energy_db.sql
mysql -u root -p < myems_energy_model_db.sql
mysql -u root -p < myems_energy_plan_db.sql
mysql -u root -p < myems_energy_prediction_db.sql
mysql -u root -p < myems_fdd_db.sql
mysql -u root -p < myems_historical_db.sql
mysql -u root -p < myems_production_db.sql
mysql -u root -p < myems_reporting_db.sql
mysql -u root -p < myems_system_db.sql
mysql -u root -p < myems_user_db.sql

Nota: Consulta database

  1. Modifica la configuración
Consejo

Supón que la IP del host es 192.168.0.1, la IP de la base de datos es 192.168.0.2, la cuenta de la base de datos es: root y la contraseña es: !MyEMS1. Modifícalos según corresponda.

3.1 Modifica la dirección de la API en nginx.conf

cd myems
nano myems-admin/nginx.conf
nano myems-web/nginx.conf

3.2 Copia example.env a .env en cada carpeta y modifica la IP, el usuario y la contraseña de la base de datos en .env

cd myems
cp myems-aggregation/example.env myems-aggregation/.env
nano myems-aggregation/.env
cp myems-api/example.env myems-api/.env
nano myems-api/.env
cp myems-cleaning/example.env myems-cleaning/.env
nano myems-cleaning/.env
cp myems-modbus-tcp/example.env myems-modbus-tcp/.env
nano myems-modbus-tcp/.env
cp myems-normalization/example.env myems-normalization/.env
nano myems-normalization/.env

3.3 Modifica la carpeta upload en docker-compose.yml Si el host es Windows, usa c:\upload para volumes/source en los servicios api y admin. Si el host es Linux, usa /upload para volumes/source en los servicios api y admin. Asegúrate de que las carpetas upload en api y admin sean la misma en el host.

  1. Compila la interfaz web

Modifica el archivo de configuración:

Nota

Get mapboxToken from https://mapbox.com and then set showOnlineMap to true. If you want to turn off online map feature, set showOnlineMap to false

cd myems/myems-web
sudo nano src/config.js

Build:

cd myems/myems-web
npm i --unsafe-perm=true --allow-root --legacy-peer-deps
npm run build
  1. Ejecuta el comando docker-compose

En host Windows:

cd myems
docker-compose -f docker-compose-on-windows.yml up -d

En host Linux:

cd myems
docker-compose -f docker-compose-on-linux.yml up -d
  1. Verificación
DirecciónResultado esperado
myems-web192.168.0.1:80Inicio de sesión exitoso con usuario y contraseña
myems-admin192.168.0.1:8001Inicio de sesión exitoso con usuario y contraseña
myems-api192.168.0.1:8000/versionDevuelve información de versión
Información

Si la API muestra un error, confirma que la IP, la cuenta y la contraseña de la base de datos en .env sean correctas. Si no, modifícalas y ejecuta:

docker-compose up --build -d
Cómo solucionar problemas de timeout al descargar imágenes

Debido a problemas de red del ISP, puedes experimentar lentitud al descargar imágenes. Puedes usar servicios de aceleración de terceros.