# Imagen a utilizar alpine
FROM php:fpm-alpine
# USER root
RUN apk add --no-cache shadow
RUN addgroup -S www
# USER root
RUN usermod www-data -a -G www
# agregar grupo y usuario para la aplicacion
# RUN /bin/sh -c "addgroup -S www"
# RUN /bin/sh -c 'adduser -S www-data -G www'
# RUN addgroup -S nginx && adduser -S nginx -G nginx
# Instalar paquetes a ocupar (manejo de errores con rsyslog)
# RUN apk add openrc #\
   # && apk add rsyslog\
   #  && rc-update add rsyslog default\
   # && mkdir /run/openrc\
   #  && touch /run/openrc/softlevel
# Comentar linea en archivo de configuracion
### RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
# Inicializar el servicio de rsyslog
### RUN rc-service rsyslog start
# Instalar servidor web nginx
# Instala pquetes de php necesario para la app
RUN apk update
RUN apk --no-cache add php-bz2 php-cli php-ctype php-curl php-dom php-gmp php-iconv php-json php-mbstring php-mysqli php-session \
     php-opcache php-openssl php-pdo php-pgsql php-posix php-sqlite3 php-tokenizer php-xmlreader php-xmlwriter php-xsl php-zip php-zlib php-pdo_mysql

# RUN docker-php-ext-install
RUN docker-php-ext-install pdo pdo_mysql mysqli ctype opcache
# Instalar openssl para generar certificado autofirmado para la configuracion de nginx con ssl
# RUN apk --no-cache add  openssl # validar si esto se resuelve con certmanager
# Crear directorios necesarios
# RUN mkdir -p /etc/nginx/ssl /var/run/php/ /app
# Configurar php
# Habilitamos short_open_tag
# RUN sed -i 's/short_open_tag = Off/short_open_tag = On/g' /etc/php82/php.ini
# RUN rm /usr/local/etc/php-fpm.d/*
RUN mkdir /var/log/php-fpm
RUN mkdir /app
# RUN echo "" > /usr/local/etc/php-fpm.d/zz-docker.conf
RUN touch /var/log/php-fpm/www-error.log
RUN mv /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini
RUN sed -i 's/short_open_tag = Off/short_open_tag = On/g' /usr/local/etc/php/php.ini
# COPY App/config/app/www_phpfpm.conf /usr/local/etc/php-fpm.d/www.conf
# Configurar nginx
# Generar certificado autofirmado en directorio para leer desde archivo de configuracion de nginx
# RUN openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.crt -subj "/CN=localhost"
# Eliminamos archivo default
# RUN rm /etc/nginx/http.d/default.conf
# Copiamos archivo de configuracion para nuestro servidor
# COPY App/config/app/www_nginx.conf /etc/nginx/http.d/www.conf

# Configurar supervisor, en lo que se separa las imagenes
# RUN apk add --no-cache supervisor
# RUN mkdir -p /etc/supervisor.d/
# COPY App/config/app/supervisor_daas.ini /etc/supervisor.d/daas_front.ini

# USER wwwrun

# Copiar carpeta de proyecto a ruta de aplicacion configurada en nginx
COPY . /app

# RUN chmod -R 777 /app

# RUN chmod -Rv 777 /app/App/logs/

RUN chown -R www-data:www /app/

EXPOSE 9000
WORKDIR /app

# USER www-data

CMD ["php-fpm"]
