FROM nginx:1.24.0-alpine3.17@sha256:e7ece7ddc2e44b2af69a1aa282047794bb31287a960f6c9f53e089c269bee1c7

LABEL maintainer="DevOps Team"
LABEL description="Nginx Rootless para Laravel"

# Variáveis de Build (Padrão 1002 conforme ambiente de homologação)
ARG UID=1002
ARG GID=1002

# Criar usuário www para consistência com PHP-FPM
# Garante que o usuário 1002 exista dentro do Alpine
RUN addgroup -g ${GID} www \
    && adduser -u ${UID} -G www -s /bin/sh -D www

# Remover configuração padrão
RUN rm /etc/nginx/conf.d/default.conf

# Criar diretórios operacionais, caminhos temporários e garantir posse ao usuário www (1002)
# Vital para rodar o Nginx Master como não-root e processar uploads grandes sem travamentos
RUN mkdir -p /var/log/nginx \
             /var/cache/nginx \
             /etc/nginx/conf.d \
             /var/lib/nginx \
             /tmp/client_temp \
             /tmp/proxy_temp_path \
             /tmp/fastcgi_temp \
             /tmp/uwsgi_temp \
             /tmp/scgi_temp \
    && chown -R www:www /var/log/nginx \
                        /var/cache/nginx \
                        /etc/nginx/conf.d \
                        /var/lib/nginx \
                        /etc/nginx/nginx.conf \
                        /tmp/client_temp \
                        /tmp/proxy_temp_path \
                        /tmp/fastcgi_temp \
                        /tmp/uwsgi_temp \
                        /tmp/scgi_temp

WORKDIR /var/www/html

EXPOSE 8000

# Executar como usuário não-root (1002)
USER www

CMD ["nginx", "-g", "daemon off;"]
