flysmog.pages.dev

Como validar CPF em ambiente Docker sem internet?

Validar CPF em um ambiente Docker isolado pode parecer desafiador, mas com a abordagem certa, você pode implementar uma solução robusta e offline. Este método utiliza um script Python embutido na imagem Docker, garantindo validação precisa sem depender de serviços externos.

Pré-requisitos

Criando o Dockerfile

O primeiro passo é criar um Dockerfile que instale o Python e copie um script de validação. Este arquivo define a base da nossa imagem Docker.

FROM python:3.9-slim
WORKDIR /app
COPY validate_cpf.py .
CMD ["python", "validate_cpf.py"]

Escrevendo o script de validação

O script Python implementa o algoritmo padrão de validação de CPF, calculando os dígitos verificadores sem necessidade de internet.

def validate_cpf(cpf):
    cpf = ''.join(filter(str.isdigit, cpf))
    if len(cpf) != 11:
        return False
    if cpf == cpf[0] * 11:
        return False
    # Cálculo do primeiro dígito verificador
    sum_digits = sum(int(digit) * (10 - i) for i, digit in enumerate(cpf[:9]))
    first_digit = (sum_digits * 10) % 11
    first_digit = 0 if first_digit == 10 else first_digit
    # Cálculo do segundo dígito verificador
    sum_digits = sum(int(digit) * (11 - i) for i, digit in enumerate(cpf[:10]))
    second_digit = (sum_digits * 10) % 11
    second_digit = 0 if second_digit == 10 else second_digit
    return str(first_digit) == cpf[9] and str(second_digit) == cpf[10]

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 2:
        print("Uso: python validate_cpf.py ")
        sys.exit(1)
    cpf = sys.argv[1]
    if validate_cpf(cpf):
        print(f"CPF {cpf} é válido")
    else:
        print(f"CPF {cpf} é inválido")

Construindo e executando a imagem Docker

Com os arquivos prontos, construa a imagem Docker e teste a validação de CPF.

# Construir a imagem
docker build -t cpf-validator .

# Executar a validação
docker run cpf-validator 123.456.789-09

Exemplo Prático

A tabela abaixo mostra exemplos de CPFs e os resultados esperados da validação:

CPF de Entrada Formato Resultado Esperado
123.456.789-09 Com pontuação Inválido
529.982.247-25 Com pontuação Válido
52998224725 Sem pontuação Válido
111.111.111-11 Sequência inválida Inválido

Conclusão

Com este método, você implementa uma solução completa de validação de CPF em ambiente Docker sem depender de conexão com a internet. O script Python incorporado garante precisão nos cálculos dos dígitos verificadores, enquanto a imagem Docker fornece um ambiente isolado e replicável para suas necessidades de validação.