Passer au contenu du pied de page
UTILISATION DE IRONSECUREDOC

Docker Compose Variables d’environnement (Tutoriel pour développeurs)

Le déploiement d'applications à travers différents environnements entraîne souvent des problèmes de compatibilité. Une application peut fonctionner parfaitement sur la machine d'un développeur mais rencontrer des problèmes en test ou en production en raison de différences entre les systèmes d'exploitation, les dépendances ou les configurations. Docker résout ce problème en emballant les applications dans des unités autonomes qui incluent tout ce qui est nécessaire pour exécuter l'application, garantissant qu'elle fonctionne de manière cohérente partout, du développement à la production.

Docker Compose apporte des avantages puissants aux applications conteneurisées, notamment grâce à son utilisation de variables d'environnement pour simplifier la configuration dans différents setups. En permettant que les paramètres clés soient gérés en dehors du code, Docker Compose rend le déploiement d'applications complexes plus simple et plus sécurisé. En s'appuyant sur ces avantages, cet article montrera également comment vous pouvez utiliser IronSecureDoc pour le traitement sécurisé des documents, en profitant de la flexibilité de Docker Compose pour gérer efficacement les configurations pour le chiffrement et le masquage.

Qu'est-ce que Docker?

Docker est un système open-source qui facilite le développement, le déploiement et l'exécution d'applications dans un système à travers la conteneurisation. Les conteneurs sont des unités portables ultra-légères qui contiennent à la fois une application et ses dépendances pour qu'elles s'exécutent de manière uniforme partout, de la machine du développeur aux serveurs de production. Les conteneurs partagent le noyau du système d'exploitation de l'hôte par rapport aux machines virtuelles classiques et sont donc beaucoup plus rapides et efficaces.

Variables d'environnement Docker Compose (Tutoriel développeur) : Figure 1 - Page Docker

Cela signifierait un modèle virtualisé sous forme d'images Docker pour créer et maintenir cet ensemble de conteneurs. De plus, la plateforme contient Docker Hub, qui est en quelque sorte un référentiel d'images de conteneurs. La beauté de cette technologie réside dans sa simplicité d'utilisation liée à l'évolutivité, la portabilité et l'efficacité, ce qui explique en partie pourquoi elle a gagné en popularité parmi de nombreux workflows de développement DevOps et basés sur le cloud.

Quelles sont les variables d'environnement dans Docker-Compose?

Dans Docker, une variable d'environnement sous forme de paire clé-valeur est utilisée pour configurer les paramètres dans l'application conteneurisée. Ces variables peuvent être utiles pour contrôler le comportement de l'application elle-même sans en modifier le code, car facilement, des configurations telles que des informations d'identification de base de données et des clés API ou des modes d'environnement (par exemple : développement, production) peuvent être modifiées.

Dans Docker, un attribut d'environnement peut être défini à l'intérieur du Dockerfile, à l'intérieur du fichier docker-compose.yml, ou transmis à l'exécution en utilisant la commande docker run. Avec l'utilisation de variables d'environnement, Docker permet un déploiement d'application cohérent et flexible à travers différents environnements et gère les données sensibles comme les mots de passe et les jetons API de manière plus efficace.

Comment créer des variables d'environnement dans Docker?

Nous pouvons définir des variables d'environnement dans Docker de plusieurs manières. Elles peuvent être définies avec un fichier Docker Compose, le fichier docker-compose.yml, dans un fichier d'environnement, ou même à l'exécution, lorsque vous exécutez la commande docker run. Rappelez-vous, garder les variables d'environnement séparées du fichier de configuration principal conduit à une organisation plus facile des variables! Voici une liste des diverses méthodes pouvant être appliquées pour définir vos variables.

Définir des variables d'environnement dans le Dockerfile

Nous pouvons définir des variables d'environnement directement dans le Dockerfile, en utilisant l'instruction ENV. Cela peut être utile si vous souhaitez inclure des valeurs par défaut pour les variables au sein de votre image Docker.

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

La configuration de variables d'environnement avec les valeurs définies dans le Dockerfile s'appliquera automatiquement lors de l'exécution du conteneur.

Définir des variables d'environnement dans Docker-Compose.yml

Nous pouvons définir des variables d'environnement pour chaque service à l'intérieur d'un docker-compose.yml à l'aide du mot-clé environment. C'est pratique lorsque vous utilisez Docker Compose pour gérer quelques services.

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

Définir des variables d'environnement à l'exécution

Nous pouvons spécifier des variables d'environnement lors de l'exécution d'un conteneur en utilisant le drapeau -e avec la commande docker run. Ceci est bon pour les valeurs transitoires et dynamiques, que vous n'ajouteriez probablement pas au 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

Utilisation de fichiers d'environnement (.env)

Nous pouvons stocker des variables d'environnement dans un fichier comme .env et les charger dans vos conteneurs Docker. Dans Docker Compose, nous y ferons référence avec la directive 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

Nous pouvons gérer plusieurs fichiers, avec des variables d'environnement en dehors des fichiers de configuration grâce à l'aide des fichiers env.

Qu'est-ce qu'IronSecureDoc ?

IronSecureDoc pour Docker permet aux développeurs d'ajouter facilement une capacité de traitement sécurisé des documents à leurs applications conteneurisées. Ayant appris Docker, vous pouvez encapsuler votre application ASP.NET Core avec IronSecureDoc dans un environnement homogène qui facilite le déploiement et l'évolutivité. Pour ce faire, vous construirez un Dockerfile qui orchestre la construction de votre application ASP.NET Core en utilisant la bibliothèque IronSecureDoc et possiblement d'autres scripts d'installation ou configurations nécessaires pour que tout fonctionne.

Variables d'environnement Docker Compose (Tutoriel développeur) : Figure 2 - Page IronSecureDoc

En plus, il comprend un fichier docker-compose.yml déclarant les dépendances de service et les variables d'environnement et les ports mappés à utiliser. Cela rend l'exécution des tâches de sécurité des documents beaucoup plus accessible afin que votre application puisse fonctionner efficacement dans un environnement autre que celui utilisé lors du développement ou de la production. Installation et configuration d'IronSecureDoc Comme dans le cas de Docker, une installation et une configuration appropriées d'IronSecureDoc seront nécessaires pour bien réaliser ses capacités : chiffrement de documents, masquage, etc.

Caractéristiques clés d'IronSecureDoc

IronSecureDoc offre une gamme de fonctionnalités puissantes pour la sécurité des PDF et la gestion de documents :

  • Cryptage : Fournit un cryptage 128 ou 256 bits avec sécurité par mot de passe pour protéger la confidentialité des documents.
  • Masquage : Supprime les informations sensibles, telles que les identifiants personnels, pour respecter les normes et réglementations de confidentialité.
  • Signature numérique : Prend en charge la signature et la notarisation numériques avec des certificats .pfx ou .p12 pour garantir l'authenticité des documents.
  • API REST : API flexible permet une intégration transparente avec d'autres logiciels et flux de travail.
  • Intégration Docker : Support natif pour Docker simplifie le déploiement et l'évolutivité pour les applications dans le cloud ou sur site.

Ces caractéristiques font d'IronSecureDoc un excellent choix pour les secteurs manipulant des documents sensibles, tels que le juridique, la santé et la finance.

Installer et exécuter IronSecureDoc

Étape 1

Pour installer IronSecureDoc, exécutez la commande suivante dans une fenêtre de terminal ou une invite de commande pour obtenir l'image Docker IronSecureDoc depuis le dépôt.

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Variables d'environnement Docker Compose (Tutoriel développeur) : Figure 3 - Sortie de la console pour obtenir l'image IronSecureDoc

Étape 2

Une fois l'image IronSecureDoc récupérée, nous pouvons utiliser la commande docker-compose suivante pour exécuter l'image dans le conteneur 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

Variables d'environnement Docker Compose (Tutoriel développeur) : Figure 4 - Sortie de la console lors de l'exécution de l'image IronSecureDoc

Nous utilisons le conteneur Docker pour exécuter le dépôt officiel de Iron Software. La ligne de commande ci-dessus se divise en plusieurs parties qui sont expliquées ci-dessous.

Explication de la commande

  • docker container run - Cette commande utilise l'image donnée pour construire et lancer un nouveau conteneur Docker.
  • --rm - Nettoie automatiquement le conteneur immédiatement après son arrêt. Elle supprime tous les conteneurs non utilisés lors de la fin de tout processus.
  • -p 8080:8080 - Publie le port 8080 du conteneur, de sorte que vous pouvez y accéder sur votre machine via http://localhost:8080.
  • -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> - Définit une variable d'environnement dans le conteneur en cours d'exécution nommée IronSecureDoc_LicenseKey qui vous permet d'activer et d'utiliser les fonctionnalités sous licence d'IronSecureDoc. Remplacez <IRONSECUREDOC_LICENSE_KEY> par votre clé réelle.
  • -e ENVIRONMENT=Development - La variable d'environnement est définie sur Développement. Cela signifie que le conteneur doit être exécuté en mode développement. Normalement, ce conteneur est utilisé pour les cas de test ou de débogage; autrement, il varie des configurations non-production.
  • -e HTTP_PORTS=8080 - Cette variable d'environnement est utilisée pour spécifier que le conteneur doit exposer et écouter le port 8080 pour le trafic HTTP. Elle garantit l'accès au service à l'intérieur du conteneur en passant par ce port particulier.
  • ironsoftwareofficial/ironsecuredoc:latest - Il s'agit de l'image Docker. Cela spécifie que la dernière version de l'image doit être utilisée depuis le registre Docker pour IronSecureDoc.

Conteneur IronSecuredoc

L'API REST de IronSecureDoc permet aux utilisateurs de masquer, certifier et chiffrer des documents après son lancement dans Docker. Voici un lien vers les points de terminaison API et la documentation avec Swagger UI, une fois que vous avez lancé IronSecureDoc dans un conteneur Docker : http://localhost:8080/swagger/index.html.

Variables d'environnement Docker Compose (Tutoriel développeur) : Figure 5 - Swagger UI pour interagir avec les points de terminaison API

À partir de l'instance ci-dessus, nous pouvons envoyer une requête POST à l'API IronSecureDoc pour soumettre un document à chiffrer :

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

En faisant cela, IronSecureDoc recevra le document et le chiffrera correctement.

Conclusion

En résumé, les variables d'environnement de Docker Compose permettent la configuration des applications de manière très flexible et efficace, car les détails de configuration sont automatiquement séparés du code de l'application. Par conséquent, gérer différents environnements tels que le développement, le test et la production est plus simple, car seules les variables comme les clés API, les informations d'identification de base de données et les paramètres d'une application doivent être modifiées à la place de son code.

Utiliser Docker Compose pour implémenter IronSecureDoc utilise des variables d'environnement pour gérer de manière sécurisée les informations de licence, par exemple, l'IronSecureDoc_LicenseKey, et aussi pour spécifier les ports HTTP ou le mode d'environnement préféré soit comme développement, soit comme production en utilisant des variables d'environnement. Utiliser des variables d'environnement pour la configuration rend plus simple le déploiement d'IronSecureDoc avec des configurations beaucoup moins encombrées et difficiles à évoluer et améliore la sécurité.

Des fonctionnalités avancées deviennent accessibles grâce à une licence valide d'IronSecureDoc. L'utilisation de l'outil dépend strictement de certains termes d'utilisation. Vous pouvez également utiliser d'autres bibliothèques haute performance que propose Iron Software pour rendre le processus de développement plus facile et plus rapide, fournissant des fonctionnalités robustes dans le traitement des PDFs, la reconnaissance de texte et les codes-barres pour toute application concevable.

Variables d'environnement Docker Compose (Tutoriel développeur) : Figure 6 - Page de licence IronSecureDoc

Questions Fréquemment Posées

Comment Docker Compose peut-il améliorer le déploiement des applications ?

Docker Compose améliore le déploiement des applications en utilisant des variables d'environnement pour gérer les configurations de manière externe, permettant ainsi une mise à l'échelle facile et une adaptation dans différents environnements sans modifier le code de l'application.

Quel rôle jouent les variables d'environnement dans Docker ?

Les variables d'environnement dans Docker sont des paires clé-valeur qui configurent les paramètres de l'application indépendamment du code, permettant une gestion sécurisée des informations sensibles telles que les mots de passe et les clés API.

Comment IronSecureDoc s'intègre-t-il à Docker pour le traitement sécurisé des documents ?

IronSecureDoc s'intègre à Docker en fournissant une image Docker qui peut être téléchargée et exécutée à l'aide de commandes Docker. Il utilise des variables d'environnement pour configurer des fonctionnalités sécurisées de traitement des documents telles que le cryptage, la réduction et la signature numérique.

Quels sont les avantages d'utiliser des variables d'environnement dans Docker Compose ?

L'utilisation de variables d'environnement dans Docker Compose permet une gestion de la configuration flexible, améliore la sécurité en gardant les données sensibles hors du code de l'application et simplifie les processus de déploiement dans divers environnements.

Comment pouvez-vous exécuter IronSecureDoc dans un environnement Docker ?

Pour exécuter IronSecureDoc dans un environnement Docker, vous pouvez utiliser la commande docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey= -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest, en spécifiant les variables d'environnement nécessaires pour la configuration.

Quelles fonctionnalités IronSecureDoc offre-t-il pour la sécurité des documents ?

IronSecureDoc offre des fonctionnalités telles que le cryptage des documents, la réduction, la signature numérique et une intégration transparente avec Docker pour la gestion sécurisée des documents dans des environnements containerisés.

Comment les variables d'environnement sont-elles définies dans une configuration Docker Compose ?

Les variables d'environnement peuvent être définies dans Docker Compose à l'aide d'un fichier docker-compose.yml, de fichiers d'environnement ou de commandes à l'exécution, fournissant flexibilité et sécurité dans la gestion des configurations d'application.

Pourquoi est-il important de séparer la configuration du code dans les déploiements Docker ?

Séparer la configuration du code grâce aux variables d'environnement est important dans les déploiements Docker car cela améliore la sécurité, simplifie la gestion à travers différents environnements et réduit le risque d'exposition d'informations sensibles.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite