Existen 2 archivos docker-compose, desarrollo (dentro de src/ ) y producción ( en la raíz del proyecto).
Existen 2 archivos docker-compose, desarrollo y producción, la principal diferencia estre ambos es que produccion no tiene un contenedor de base de datos, ya que debe conectarse a la de el sistema en producción de Declaraciones Juradas; además no tiene puertos para acceder tanto a la base de datos como a la API.
Principalmente debe crearse y configurarse un archivo .env en src/.
En el archivo docker-compose-{xxxxx}.yml pueden modificarse varias cosas según la version:
Es recomendable que para facilitar la configuración del .env realice una copia del archivo src/.env.example y complete con las credenciales que correspondan según como lo indica cada variable (es importante comprender que ingresar en cada variable para que el sistema funcione como se espera).
#### Desarrollo:
### Desarrollo (src/docker-compose.yml):
- Los puertos hacia afuera de la base de datos (para testing puede usarse un backup) y la API.
- Las credenciales de la base de datos (repetir luego en .env del contenedor de la api).
#### Producción:
Utiliza Laravel Sail y tiene un contenedor para la base de datos.
Es recomendable que para facilitar la configuración del .env del contenedor de la API que realice una copia del archivo src/.env.example y complete con las credenciales que correspondan según como lo indica cada variable (es importante comprender que ingresar en cada variable para que el sistema funcione como se espera).
#### Intrucciones:
Asegurese también de que las credenciales de la base de datos que ingresa en este archivo sean las misma que definio en el archivo docker-compose-{xxxxx}.yml
### Intrucciones:
```bash
```bash
$ https://github.com/fcyt-sistemas/api_ddjj
$ git clone <url_de_este_repositorio>
$ cd api_ddjj
$ cd api_ddjj/src/
$ docker-compose -f {nombre_archivo_docker_compose} up -d
$ cp .env.example .env # configuraraciones de laravel
$ composer install # o composer install --ignore-platform-req=ext-iconv de ser necesario
$ ./vendor/bin/sail up -d
```
```
Si usa la opción de desarrollo puede ocurrir que los volumenes de su repositorio clonado tengan permisos incompatibles con el usuario de apache.
### Producción (docker-compose-produccion.yml):
Si sale el siguiente error:
```bash
The stream or file "/var/www/ddjj/storage/logs/laravel.log" could not be opened in append mode: failed to open stream
```
Ejecute:
```bash
Usa una imagen generada por Dockerfile a medida, debe configurar crear y configurar un archivo .env en la raiz del proyecto a partir del .env.example (tambien en la raiz del proyecto) si desea usar el contenedor de la base de datos generado por el docker compose de produccion.