Ir para o conteúdo do rodapé
USANDO O IRONSECUREDOC

Variáveis de ambiente do Docker Compose (Tutorial para desenvolvedores)

Implantar aplicações em diferentes ambientes muitas vezes leva a problemas de compatibilidade. Um aplicativo pode funcionar perfeitamente na máquina de um desenvolvedor mas encontrar problemas em testes ou produção devido a diferenças nos sistemas operacionais, dependências ou configurações. O Docker resolve este problema empacotando aplicações em unidades autônomas que incluem tudo o que é necessário para executar o aplicativo, garantindo que ele funcione consistentemente em qualquer lugar, desde o desenvolvimento até a produção.

O Docker Compose traz poderosos benefícios para aplicações conteinerizadas, especialmente com seu uso de variáveis de ambiente para simplificar a configuração em diferentes configurações. Ao permitir que configurações chave sejam gerenciadas fora do código, o Docker Compose facilita a implantação de aplicações complexas de forma mais simples e segura. Aproveitando esses benefícios, este artigo também mostrará como você pode usar o IronSecureDoc para processamento seguro de documentos, aproveitando a flexibilidade do Docker Compose para gerenciar configurações para criptografia e redação de forma eficiente.

O que é Docker?

Docker é um sistema de código aberto para facilitar o desenvolvimento, implantação e execução de aplicações em um sistema através da conteinerização. Contêineres são unidades portáteis extremamente leves que contêm tanto uma aplicação quanto suas dependências para que funcionem uniformemente em qualquer lugar — da máquina do desenvolvedor aos servidores de produção. Os contêineres compartilham o kernel do sistema operacional do host em comparação com máquinas virtuais tradicionais e, portanto, são muito mais rápidos e mais eficientes.

Variáveis de Ambiente do Docker Compose (Tutorial do Desenvolvedor): Figura 1 - página web do Docker

Isso significaria um modelo virtualizado na forma de imagens Docker para criar e manter este conjunto de contêineres. Além disso, a plataforma contém o Docker Hub, que é de certa forma um repositório de imagens de contêiner. A beleza dessa tecnologia reside em sua facilidade de uso no que diz respeito à escalabilidade, portabilidade e eficiência, o que é uma das razões pela qual ganhou tanta popularidade entre muitos fluxos de trabalho de desenvolvimento DevOps e baseados em nuvem.

O que são Variáveis de Ambiente no Docker-Compose?

No Docker, uma variável de ambiente na forma de um par chave-valor é usada para configurar definições na aplicação conteinerizada. Tais variáveis podem ser úteis para controlar o comportamento da aplicação em si sem modificar seu código, já que configurações como credenciais de banco de dados e chaves de API ou modos de ambiente (por exemplo: desenvolvimento, produção) podem ser alterados facilmente.

No Docker, um atributo de ambiente pode ser definido dentro do Dockerfile, dentro do arquivo docker-compose.yml, ou passado em tempo de execução usando o comando docker run. Com o uso de variáveis de ambiente, o Docker permite uma implantação de aplicação consistente e flexível em diferentes ambientes e gerencia dados sensíveis como senhas e tokens de API de forma mais eficaz.

Como Criar Variáveis de Ambiente no Docker?

Podemos definir variáveis de ambiente no Docker de diversas maneiras. Elas podem ser definidas com um arquivo Docker Compose, o arquivo docker-compose.yml, em um arquivo de ambiente, ou mesmo em tempo de execução, ao executar o comando docker run. Lembre-se, manter variáveis de ambiente separadas do arquivo de configuração principal leva a uma organização mais fácil das variáveis! Aqui está uma lista dos vários métodos que podem ser aplicados para definir suas variáveis.

Definir Variáveis de Ambiente no Dockerfile

Podemos definir variáveis de ambiente diretamente no Dockerfile, usando a instrução ENV. Isso pode ser útil se você quiser incluir valores padrão para as variáveis dentro de sua imagem Docker.

# Dockerfile
# Set the application environment
ENV APP_ENV=development
# Set the database URL
ENV DATABASE_URL=postgres://user:password@db:1234/mydev

A definição de variáveis de ambiente com os valores definidos no Dockerfile se aplica automaticamente na execução do contêiner.

Definir Variáveis de Ambiente no Docker-Compose.yml

Podemos definir variáveis de ambiente para cada serviço dentro de um docker-compose.yml com a ajuda da palavra-chave environment. Isso é conveniente quando você está usando o Docker Compose para gerenciar alguns serviços.

version: '3.8'
services:
  myapp:
    image: myapp:latest
    environment:
      - APP_ENV=development
      - DATABASE_URL=postgres://user:password@db:1234/mydev
version: '3.8'
services:
  myapp:
    image: myapp:latest
    environment:
      - APP_ENV=development
      - DATABASE_URL=postgres://user:password@db:1234/mydev
YAML

Definir Variáveis de Ambiente em Tempo de Execução

Podemos especificar variáveis de ambiente ao executar um contêiner usando a flag -e junto com o comando docker run. Isso é bom para valores transitórios e dinâmicos, que você provavelmente não adicionaria ao Dockerfile.

docker run -e APP_ENV=development -e DATABASE_URL=postgres://user:password@db:1234/mydev myapp:latest
docker run -e APP_ENV=development -e DATABASE_URL=postgres://user:password@db:1234/mydev myapp:latest
SHELL

Usando Arquivos de Ambiente (.env)

Podemos armazenar variáveis de ambiente em um arquivo como .env e carregá-las em seus contêineres do Docker. No Docker Compose, nos referiremos a isso com a diretiva env_file.

# .env file
APP_ENV=production
DATABASE_URL=postgres://user:password@db:1234/mydev
# .env file
APP_ENV=production
DATABASE_URL=postgres://user:password@db:1234/mydev
SHELL

Podemos gerenciar vários arquivos, com variáveis de ambiente fora dos arquivos de configuração, através da ajuda de arquivos env.

O que é IronSecureDoc?

IronSecureDoc para Docker permite que os desenvolvedores adicionem facilmente uma capacidade de processamento de documentos seguro às suas aplicações conteinerizadas. Tendo aprendido Docker, você pode encapsular sua aplicação ASP.NET Core com IronSecureDoc em um ambiente homogêneo que facilita a implantação e a escalabilidade. Para fazer isso, você construirá um Dockerfile que orquestra a construção de sua aplicação ASP.NET Core usando a biblioteca IronSecureDoc e possivelmente outros scripts de instalação ou configurações necessárias para colocar as coisas em funcionamento.

Variáveis de Ambiente do Docker Compose (Tutorial do Desenvolvedor): Figura 2 - página web do IronSecureDoc

Além disso, inclui um arquivo docker-compose.yml declarando dependências de serviço e variáveis de ambiente e portas mapeadas para se conectar. Isso torna a realização de tarefas de segurança de documentos muito mais acessível para que sua aplicação possa funcionar de forma eficiente e eficaz em um ambiente diferente do usado durante o desenvolvimento ou produção. Instalação e Configuração do IronSecureDoc Assim como no caso do Docker, será necessária uma instalação e configuração adequadas do IronSecureDoc para realizar adequadamente suas capacidades: criptografia de documentos, redação, etc.

Principais Recursos do IronSecureDoc

IronSecureDoc oferece uma gama de recursos poderosos para segurança de PDF e gestão de documentos:

  • Criptografia: Fornece criptografia de 128 ou 256 bits com segurança baseada em senha para proteger a confidencialidade dos documentos.
  • Redação: Remove informações sensíveis, como identificadores pessoais, para atender aos padrões e regulamentos de privacidade.
  • Assinatura Digital: Suporta assinatura digital e autenticação com certificados .pfx ou .p12 para garantir a autenticidade dos documentos.
  • API REST: API flexível permite integração contínua com outros softwares e fluxos de trabalho.
  • Integração Docker: Suporte nativo para Docker simplifica a implantação e a escalabilidade para aplicações em nuvem ou locais.

Esses recursos fazem do IronSecureDoc uma excelente escolha para setores que lidam com documentos sensíveis, como jurídico, saúde e finanças.

Instalando e Executando o IronSecureDoc

Passo 1

Para instalar o IronSecureDoc, execute o seguinte comando em uma janela de terminal ou Prompt de Comando para obter a imagem Docker do IronSecureDoc do repositório.

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Variáveis de Ambiente do Docker Compose (Tutorial do Desenvolvedor): Figura 3 - Saída do console ao obter a imagem do IronSecureDoc

Etapa 2

Uma vez que a imagem do IronSecureDoc tenha sido puxada, podemos usar o seguinte comando docker-compose para executar a imagem no contêiner Docker.

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

Variáveis de Ambiente do Docker Compose (Tutorial do Desenvolvedor): Figura 4 - Saída do console ao executar a imagem do IronSecureDoc

Usamos o contêiner docker para executar o repositório oficial da IronSoftware. A linha de comando mostrada acima é dividida em várias partes que são explicadas abaixo.

Explicação do Comando

  • docker container run - Este comando usa a imagem fornecida para construir e lançar um novo contêiner Docker.
  • --rm - Limpa automaticamente o contêiner imediatamente após ele parar de ser executado. Remove todos os contêineres não utilizados no momento da conclusão de qualquer processo.
  • -p 8080:8080 - Publica a porta 8080 do contêiner, para que você possa acessá-lo em sua máquina a partir de http://localhost:8080.
  • -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> - Define uma variável de ambiente no contêiner em execução nomeada IronSecureDoc_LicenseKey que permite ativar e usar recursos licenciados do IronSecureDoc. Substitua <IRONSECUREDOC_LICENSE_KEY> com sua chave real.
  • -e ENVIRONMENT=Development - A variável de ambiente é definida como Desenvolvimento. Isso significa que o contêiner precisa ser executado em modo de desenvolvimento. Normalmente, este contêiner é usado para casos de teste ou depuração; além disso, varia de configurações não-produtivas.
  • -e HTTP_PORTS=8080 - Esta variável de ambiente é usada para especificar que o contêiner deve expor e ouvir a porta 8080 para tráfego HTTP. Garantida o acesso ao serviço dentro do contêiner passando por esta porta específica.
  • ironsoftwareofficial/ironsecuredoc:latest - Esta é a imagem do Docker. Isso especifica que a versão mais recente da imagem deve ser usada a partir do registro Docker para o IronSecureDoc.

Contêiner IronSecureDoc

A API REST do IronSecureDoc permite que os usuários façam a redação, certificação e criptografia de documentos após seu lançamento no Docker. Aqui está um link para os pontos de extremidade da API e documentação com Swagger UI, uma vez que você tenha lançado IronSecureDoc em um contêiner Docker: http://localhost:8080/swagger/index.html.

Variáveis de Ambiente do Docker Compose (Tutorial do Desenvolvedor): Figura 5 - Swagger UI para você interagir com os pontos de extremidade da API

A partir do exemplo acima, podemos enviar uma solicitação POST para a API do IronSecureDoc para submeter um documento para criptografia:

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

Ao fazer isso, o IronSecureDoc receberá o documento e o criptografará corretamente.

Conclusão

Em suma, as variáveis de ambiente do Docker Compose permitem a configuração de aplicações de uma forma muito flexível e eficiente, já que os detalhes de configuração são automaticamente separados do código da aplicação. Conseqüentemente, gerenciar diferentes ambientes como desenvolvimento, teste e produção é mais simples, já que apenas variáveis como chaves de API, credenciais de banco de dados e configurações de uma aplicação precisam ser alteradas em vez de seu código.

Usar o Docker Compose para implementar o IronSecureDoc utiliza variáveis de ambiente para lidar com segurança as informações de licenciamento, por exemplo, a IronSecureDoc_LicenseKey, e também em especificar as portas HTTP ou o modo de ambiente preferido como desenvolvimento ou produção usando variáveis de ambiente. Usar variáveis de ambiente para a configuração torna mais simples implantar o IronSecureDoc com configurações menos confusas e difíceis de escalar, e aumenta a segurança.

Recursos avançados tornam-se acessíveis por meio de uma licença válida do IronSecureDoc. A aplicação da ferramenta depende estritamente de certos termos de uso. Você também pode utilizar outras bibliotecas de alto desempenho que Iron Software oferece para facilitar e acelerar o processo de desenvolvimento, fornecendo funcionalidades robustas no trabalho com PDFs, reconhecimento de texto e códigos de barras para qualquer aplicação concebível.

Variáveis de Ambiente do Docker Compose (Tutorial do Desenvolvedor): Figura 6 - página de licenciamento do IronSecureDoc

Perguntas frequentes

Como o Docker Compose pode melhorar a implantação de aplicativos?

O Docker Compose aprimora a implantação de aplicativos usando variáveis de ambiente para gerenciar configurações externamente, permitindo fácil escalabilidade e adaptação a diferentes ambientes sem modificar o código do aplicativo.

Qual o papel das variáveis de ambiente no Docker?

As variáveis de ambiente no Docker são pares de chave-valor que configuram as definições da aplicação independentemente do código, permitindo o gerenciamento seguro de informações sensíveis, como senhas e chaves de API.

Como o IronSecureDoc se integra ao Docker para processamento seguro de documentos?

O IronSecureDoc integra-se com o Docker, fornecendo uma imagem Docker que pode ser baixada e executada usando comandos Docker. Ele utiliza variáveis de ambiente para configurar recursos de processamento seguro de documentos, como criptografia, redação e assinatura digital.

Quais são os benefícios de usar variáveis de ambiente no Docker Compose?

O uso de variáveis de ambiente no Docker Compose permite um gerenciamento de configuração flexível, maior segurança ao manter dados sensíveis fora do código do aplicativo e processos de implantação simplificados em diversos ambientes.

Como executar o IronSecureDoc em um ambiente Docker?

Para executar o IronSecureDoc em um ambiente Docker, você pode usar o comando docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey= -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest , especificando as variáveis de ambiente necessárias para a configuração.

Quais recursos o IronSecureDoc oferece para segurança de documentos?

O IronSecureDoc oferece recursos como criptografia de documentos, redação, assinatura digital e integração perfeita com o Docker para o gerenciamento seguro de documentos em ambientes conteinerizados.

Como as variáveis de ambiente são configuradas em um ambiente Docker Compose?

As variáveis de ambiente podem ser definidas no Docker Compose usando um arquivo docker-compose.yml , arquivos de ambiente ou comandos de tempo de execução, proporcionando flexibilidade e segurança no gerenciamento das configurações do aplicativo.

Por que é importante separar a configuração do código em implantações do Docker?

Separar a configuração do código por meio de variáveis de ambiente é importante em implementações do Docker, pois aumenta a segurança, simplifica o gerenciamento em diferentes ambientes e reduz o risco de exposição de informações confidenciais.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me