使用 IRONSECUREDOC

Docker Compose 环境变量(开发人员教程)

查克尼特·宾
查克尼特·宾
2024年十二月16日
分享:

介绍

在不同环境中部署应用程序往往会导致兼容性问题。 一个应用程序可能会在开发人员的机器上完美运行,但在测试或生产中却会因为操作系统、依赖性或配置的不同而遇到问题。 Docker 可以解决这个问题,它将应用程序打包成独立的单元,其中包括运行应用程序所需的一切,确保应用程序在从开发到生产的各个环节都能始终如一地运行。

Docker Compose 为容器化应用程序带来了强大的优势,尤其是它使用环境变量来简化不同设置的配置。 Docker Compose 允许在代码之外管理关键设置,从而使复杂应用程序的部署更简单、更安全。 在这些好处的基础上,本文还将展示如何使用IronSecureDoc进行安全的文档处理,利用Docker Compose的灵活性高效处理加密和去除敏感信息的配置。

什么是 Docker?

Docker 是一个开源系统,通过容器化简化应用程序的开发、部署和运行。 容器是一种超轻量级的便携式单元,它包含应用程序及其依赖项,因此可以在从开发人员的机器到生产服务器的任何地方统一运行。 与传统虚拟机相比,容器共享主机操作系统的内核,因此速度更快,效果更好。

Docker Compose 环境变量(开发者教程):图 1 - Docker 网页

这意味着需要一个 Docker 映像形式的虚拟化模板来制作和维护这套容器。 此外,该平台还包含 Docker Hub,它在某种程度上是一个容器镜像库。 这项技术的魅力在于其易用性、可扩展性、可移植性和高效性,这也是它在许多 DevOps 和基于云的开发工作流程中如此受欢迎的原因之一。

什么是 Docker-Compose 中的环境变量?

在 Docker 中,键值对形式的环境变量用于配置容器化应用程序中的设置。 这样的变量可以用来控制应用程序本身的行为,而无需修改其代码,因为可以轻松更改诸如数据库凭证和API密钥或环境模式(例如:开发、生产)等配置。

在 Docker 中,环境属性可以在 Dockerfile、docker-compose.yml 文件中定义,也可以在运行时使用 docker run 命令传递。 通过使用环境变量,Docker 可以在不同环境中一致、灵活地部署应用程序,并更有效地管理密码和 API 标记等敏感数据。

如何在 Docker 中创建环境变量?

我们可以通过多种方式在 Docker 中定义环境变量。 它们可以通过 Docker Compose 文件、docker-compose.yml 文件、环境文件,甚至在运行时执行 docker run 命令时定义。 请记住,将环境变量与主配置文件分开可以更轻松地组织变量! 下面列出了可用于定义变量的各种方法。

在 Docker 文件中设置环境变量

我们可以使用 ENV 指令直接在 Docker 文件中定义环境变量。 如果您想在 Docker 映像中包含变量的默认值,这可能会有所帮助。

# Dockerfile
ENV APP_ENV=devepolment
ENV DATABASE_URL=postgres://user:password@db:1234/mydev

使用 Docker 文件中定义的值设置环境变量将自动导致容器的运行。

在 Docker-Compose.yml 中设置环境变量

我们可以借助环境关键字为 docker-compose.yml 中的每个服务定义环境变量。 当您使用 Docker Compose 管理几个服务时,这将非常方便。

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

在运行时设置环境变量

在运行容器时,我们可以使用 -e 标志和 docker run 命令来指定环境变量。 这对瞬时值和动态值很有帮助,您可能不会将这些值添加到 Docker 文件中。

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

使用环境文件 (.env)

我们可以将环境变量存储在类似于 .env 的文件中,并将其加载到您的 Docker 容器中。 在 Docker Compose 中,我们将使用env 文件指令来引用它。

APP_ENV=production
DATABASE_URL=postgres://user:password@db:1234/mydev

我们可以管理多个文件,并通过 env 文件管理配置文件之外的环境变量。

什么是 IronSecureDoc?

IronSecureDoc for Docker 允许开发者轻松地为其容器化应用程序添加安全的文档处理功能。 最后,在学习了 Docker 之后,您就可以将 ASP.NET Core 应用程序与 IronSecureDoc 封装在一个同质环境中,从而使其更易于部署和扩展。 为此,您将创建一个 Dockerfile,使用 IronSecureDoc 库和可能需要的其他安装脚本或配置来协调 ASP.NET Core 应用程序的构建。

Docker Compose 环境变量(开发者教程):图2 - IronSecureDoc 网页

此外,它还包括一个 docker-compose.yml 文件,其中声明了服务依赖关系、环境变量和映射端口。 这样,执行文档安全任务就更容易了,这样您的应用程序就可以在开发或生产环境以外的环境中高效运行。 IronSecureDoc 的安装和配置 与 Docker 的情况一样,需要正确安装和配置 IronSecureDoc 才能正确实现其功能:文档加密、编辑等。

IronSecureDoc 的主要功能

IronSecureDoc 为 PDF 安全和文档管理提供了一系列强大功能:

  • 加密:提供128位或256位加密,并基于密码的安全性保护文档机密性。
  • 编辑:删除敏感信息,如个人标识符,以符合隐私标准和法规。
  • 数字签名:支持使用.pfx或.p12证书进行数字签名和公证,以确保文档的真实性。
  • REST API:灵活的API可实现与其他软件和工作流程的无缝集成。
  • Docker 集成:对 Docker 的原生支持简化了云端或本地应用程序的部署和扩展。

    这些特点使 IronSecureDoc 成为处理敏感文件的部门(如法律、医疗保健和金融)的绝佳选择。

安装和运行 IronSecureDoc

步骤 1

要安装 IronSecureDoc,请在终端窗口或命令提示符中运行以下命令,从版本库中获取 IronSecureDoc Docker 镜像。

docker pull ironsoftwareofficial/ironsecuredoc

Docker Compose 环境变量(开发者教程):图 3 - 获取 IronSecureDoc 镜像的控制台输出

第二步

一旦 IronSecureDoc 图像被提取出来。 我们可以使用下面的 docker-compose 命令将映像运行到 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 Compose 环境变量(开发者教程):图4 - 运行 IronSecureDoc 镜像的控制台输出

我们使用 docker 容器运行 IronSoftware 的官方资源库。 上图中的命令行分为几个部分,下面将对其进行解释。

命令解释

  • docker container run - 此命令使用给定的镜像来构建和启动一个新的 Docker 容器。
  • --rm - 一旦容器停止运行,就会自动清理容器。 在完成任何流程时,它都会删除所有未使用的容器。
  • -p 8080:8080 - 让它发布容器的端口8080,这样你可以通过http://localhost:8080在你的机器上访问它。
  • -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> - 在正在运行的容器中设置名为 IronSecureDoc_LicenseKey 的环境变量,使您能够启用和使用 IronSecureDoc 的授权功能。 将 <IRONSECUREDOC_LICENSE_KEY> 替换为您的实际密钥。
  • -e ENVIRONMENT=Development - 环境变量设置为 Development。 这意味着容器需要在开发模式下运行。 通常,该容器用于测试或调试案例; 除此以外,它还与非生产配置有所不同。
  • -e HTTP_PORTS=8080 - 这个环境变量用于指定容器应开放并监听8080端口以处理HTTP流量。 它可以确保通过该特定端口访问容器内的服务。
  • ironsoftwareofficial/ironsecuredoc:latest - 这只是一个 Docker 映像。 docker 适当时将创建最新版本的映像,该映像可从 IronSecureDoc 的 Docker 注册表中获取。

IronSecureDoc 容器

IronSecureDoc 的 REST API 可让用户在 Docker 中启动后对文档进行编辑、认证和加密; 此功能在其他地方也有提及。 以下是API 端点和 Swagger UI 文档的链接,当您在 Docker 容器中启动 IronSecureDoc 后:http://localhost:8080/swagger/index.html

Docker Compose环境变量(开发者教程):图5 - Swagger UI供您与API端点互动

通过上述实例,我们可以向 IronSecureDoc API 发送 POST 请求,提交文档进行加密:

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'

通过这样做,IronSecureDoc 将获得文档并正确加密。

结论

总之,Docker Compose 的环境变量允许以非常灵活和高效的方式配置应用程序,因为配置细节会自动从应用程序代码中分离出来。 因此,管理开发、测试和生产等不同环境变得更加简单,因为只需更改应用程序的 API 密钥、数据库凭据和设置等变量,而无需更改代码。

使用 Docker Compose 实现 IronSecureDoc 利用环境变量安全地处理许可信息,例如 IronSecureDoc_LicenseKey,以及使用环境变量指定 HTTP 端口或首选开发或生产环境模式。 使用环境变量进行设置可以简化 IronSecureDoc 的部署,减少杂乱无章和难以扩展的配置,并提高安全性。

通过 IronSecureDoc 的有效许可证可访问高级功能。 工具的应用严格依赖于某些使用条款。 尽管您也可以利用其他由Iron Software提供的高性能库,使开发过程更轻松、更快捷,并为任何设想的应用程序提供处理PDF、文字识别和条形码的强大功能。

Docker Compose 环境变量(开发者教程):图 6 - IronSecureDoc 许可页面

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
< 前一页
Docker 容器列表(如何为开发人员工作)
下一步 >
Docker Compose Build(开发人员教程)

准备开始了吗? 版本: 2024.10 刚刚发布

查看许可证 >