From fe4d948dcbf22c5f30d5f82b13d1a8037ed44f2e Mon Sep 17 00:00:00 2001
From: adorda <angdmz@gmail.com>
Date: Wed, 10 Jun 2020 14:47:14 -0300
Subject: [PATCH] docker-compose mejorados, README actualizado

---
 README.md          | 16 +++++++++++++---
 docker-compose.yml |  9 +++++++++
 startup.sh         |  4 ++++
 3 files changed, 26 insertions(+), 3 deletions(-)
 create mode 100644 startup.sh

diff --git a/README.md b/README.md
index d32cebb..f4016e0 100644
--- a/README.md
+++ b/README.md
@@ -31,8 +31,14 @@ cd /carpeta/del/proyecto/
 docker-compose -f docker-compose.yml up -d
 ```
 
-Esto levantará la aplicación con un usuario superadmin "admin" con contraseña "Clave123!"
+Este docker-compose.yml hace los siguientes pasos:
+- crea la carpeta logs/ y crea el archivo trazabilidad/local_settings.py a partir de trazabilidad/local_settings_dev.py
+- levanta una blockchain mock de Ganache
+- inicia las migraciones de django, sólo deberían ser las básicas, y usando SQLite
+- crea un usuario de django con permisos de superadmin con nombre "admin" y con contraseña "Clave123!"
+- levanta la aplicación
 
+Opciones
 
 #### Si se está usando PyCharm
 Ir a Settings-> Project Interpreter y elegir Remote Python 3.5 Docker
@@ -71,14 +77,18 @@ python manage.py unlock_account
 
 #### Si el smart contract del negocio no está deployado:
  
-- Loggear en el admin
+- Loggear en el admin, en el endpoint /admind
 - Ir a Config Constance
     En la sección Contract Info cargar
     - bytecode del contrato
     - ABI del contrato
 
     Estos se pueden conseguir compilando el contrato con el código que está en la carpeta smart_contract/ 
-    La aplicación no tiene funcionalidad para compilar código de solidity, pero se puede usar la IDE online Remix para compilar el código, y así obtener el ABI y el ByteCode
+    La aplicación no tiene funcionalidad para compilar código de solidity, pero se puede usar la IDE online Remix para compilar el código, y así obtener el ABI y el ByteCode.
+    
+    También en la carpeta smart_contract/ dentro del directorio del proyecto están el archivo abi.json y bytecode, que tienen respectivamente el ABI y el código del compilado de la versión de trazabilidadFactory.sol que está en la misma carpeta
+
+Ahora se pueden hacer 2 cosas para deployar el smart contract
 
 - Ahora en consola
 ```sh
diff --git a/docker-compose.yml b/docker-compose.yml
index 00e321d..9271f1f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -6,6 +6,13 @@ services:
       - ${GANACHE_RPC_PORT:-8545}:8545
     command: '-b 1'
     container_name: ganache
+  setup:
+    image: alpine
+    container_name: trazabilidad-setup
+    working_dir: /opt/project
+    volumes:
+      - .:/opt/project
+    command: ["sh", "startup.sh"]
   api:
     build:
       dockerfile: Dockerfile
@@ -34,6 +41,8 @@ services:
     environment:
       DEBUG: ${DEBUG:-1}
       SECRET_KEY: ${SECRET_KEY:-secret}
+    depends_on:
+      - setup
   superuser:
     depends_on:
       - migrations
diff --git a/startup.sh b/startup.sh
new file mode 100644
index 0000000..59745e9
--- /dev/null
+++ b/startup.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+mkdir -p logs
+cp trazabilidad/local_settings_dev.py trazabilidad/local_settings.py
\ No newline at end of file
-- 
GitLab