nfephp-org / sped-nfe

API para geração e comunicação das NFe com as SEFAZ autorizadoras
Other
1.22k stars 535 forks source link

Dockerfile para testes e simulações locais #1037

Open Piemontez opened 6 months ago

Piemontez commented 6 months ago

Descrição detalhada

Criei o seguinte Dockerfile, para rodar os testes automatizados na máquina. O objetivo deste é poder realizar uma rápida simulação do projeto, sem precisar instalar o PHP e suas dependências.

Possível implementação

Adicionar o conteúdo abaixo no arquivo Dockerfile, na pasta raiz do projeto.

FROM php:8.2-fpm

RUN apt-get update
RUN apt-get install -y libxml2-dev
RUN apt-get install -y libonig-dev libssl-dev zlib1g-dev
RUN apt-get install -y libzip-dev
RUN apt-get install -y git

# Dependencias PHP
RUN docker-php-ext-install soap
RUN docker-php-ext-install simplexml
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install intl
RUN docker-php-ext-install dom
RUN docker-php-ext-install zip

# Ativando as dependencias PHP
RUN docker-php-ext-enable soap
RUN docker-php-ext-enable simplexml
RUN docker-php-ext-enable mbstring
RUN docker-php-ext-enable intl
RUN docker-php-ext-enable dom
RUN docker-php-ext-enable zip

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# WorkDir
RUN mkdir -p /var/www/app
WORKDIR /var/www/app
COPY . .

# Composer install
RUN composer install --no-progress -o --no-ansi --no-interaction
RUN composer phpcs

CMD ["composer", "test"]
robmachado commented 6 months ago

Rafael; não vejo nenhum problema em ter um Dockerfile e/ou um Dockercompose nos projetos ! com certeza ajudam os desenvolvedores que usam essa plataforma. Pode subir um PR com os arquivos que eu avalio e autorizo ! mas é bom que sejam acompanhados de um arquivo .md com explicações sobre o uso desse recurso.

robmachado commented 6 months ago

Quanto aos testes automatizados (apesar de ainda serem muito poucos) eles já rodam no actions do github, para várias versões do PHP. Ou seja a cada commit feito os testes rodam novamente. Infelizmente ainda são muito poucos em função da quantidade de métodos e possíveis pontos de falha na biblioteca e suas dependências.