跳至页脚内容
使用 IRONSECUREDOC

Docker Build Push Action(开发者工具如何工作)

什么是Docker?

Docker 是一个开源的强大工具,通过将应用程序放入轻量级、可移植的容器中来简化构建、部署和管理应用程序的过程。 这些容器打包了应用程序及其依赖项,包括库、配置文件等,以便它甚至可以跨环境运行。 这消除了所有兼容性问题,意味着应用程序在开发人员的笔记本电脑上与在服务器或云中的表现一样。 通过高效构建工具、运输并运行 容器,简化开发、测试和扩展过程,从而更简化地管理资源。

Docker Build Push Action(开发者的工作原理):图1 - Docker

什么是Docker Image?

镜像是Docker类型的蓝图,携带一致的运行时环境。 开发人员可以利用来自Docker Hub的现成镜像,这是一个公共注册表,或者创建自己的Docker镜像。 像Docker Compose和Kubernetes这样的工具通过添加多容器设置的简单编排或管理更复杂的扩展需求进一步扩展Docker的能力。

为什么使用Docker Build Push Action?

无摩擦自动化

手动构建和推送Docker镜像是公开的,容易出错且耗时。 自动化这些步骤确保可预测性,并为底线节省了时间,尤其是在团队扩展或更新更频繁时。

无摩擦集成

Docker Build Push Action 与 GitHub 仓库无缝协作,可以围绕代码推送、拉取请求或计划事件创建工作流程。

标准化镜像构建

自动化确保每次构建Docker镜像时,都是保持一致的; 从而减少了跨多个环境(如开发、暂存和生产环境)的错误/差异。

轻松部署

通过使用构建的自动化Docker镜像及其推送到存储库中,部署可相对简单。 Kubernetes或Docker Swarm等工具可以直接从Docker注册表中拉取或构建多平台镜像,从而减少停机时间。

Docker Build Push Action 如何工作

构建和推送Docker操作做了三件核心的事情:

  1. 设置Docker登录:容器注册表身份验证以安全地推送Docker镜像。
  2. 镜像构建:使用包含指令的Dockerfile运行Docker构建命令。
  3. 推送到注册表:将构建的镜像推送到目标容器注册表。

这些步骤在GitHub Actions工作流文件(.github/workflows/your-workflow.yml)中定义,其中您指定触发器、构建配置和注册表凭据。

实现Docker Build Push Action

1: 准备您的存储库

  • 添加一个Dockerfile描述容器化的应用程序。
  • 添加构建所需的任何配置文件或脚本。
# Use Node.js as the base image
FROM node:14

# Set the working directory
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json .
RUN npm install

# Copy the application code
COPY . .

# Expose the application’s port
EXPOSE 3000

# Start the application
CMD ["npm", "start"]

2: 将注册表凭证添加为GitHub Secrets

要将Docker镜像构建并推送到容器注册表,您需要凭据。 将这些添加为GitHub Secrets:

  • 进入GitHub上的存储库设置。
  • 转到 Secrets 和 Variables > Actions。

添加以下秘密:

  • USERNAME:您的Docker Hub用户名。
  • PASSWORD:您的Docker Hub访问令牌或密码。

对于其他注册表,这相似,但有时需要额外的凭据,例如用于Amazon ECR的AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

3: 创建GitHub Actions工作流

在.github/workflows/docker-build-push.yml文件的YAML工作流文件中添加以下行。

name: Docker Build and Push

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # Step 1: Check out the repository
      - name: Checkout code
        uses: actions/checkout@v3

      # Step 2: Log in to Docker Hub
      - name: Log in to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}

      # Step 3: Build and push the Docker image
      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: username/repository:latest
name: Docker Build and Push

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      # Step 1: Check out the repository
      - name: Checkout code
        uses: actions/checkout@v3

      # Step 2: Log in to Docker Hub
      - name: Log in to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}

      # Step 3: Build and push the Docker image
      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: username/repository:latest
YAML

推送到Main: 每次推送到主分支时,工作流将被触发。

检出代码: 使用actions/checkout操作以检出存储库。

登录到注册表: 使用提供的秘密验证Docker Hub。

构建和推送: 运行Docker Build Push Action,将从当前目录构建镜像并将其推送到用户名/存储库:latest。

将工作流文件提交到您的存储库。 通过一个简单的推送,工作流将触发以构建镜像并将其推送到您指定的注册表。

IronSecureDoc是什么?

IronSecureDoc 是Iron Software的新开发产品,专为通过相当稳健的加密和控制来保护数字文档(主要是PDF)而设计。 这将进一步使组织能够安装先进的加密协议如AES-256,以便所述敏感信息在未经授权的权限下无法查看。 这意味着所述文档只能由授权用户打开,因为其打印、编辑和复制受限,并带有自定义权限。 此外,密码保护和数字签名增强了文档中的安全性和完整性以及水印。

Docker Build Push Action(开发者的工作原理):图2 - IronSecureDoc: PDF安全和合规服务器

IronSecureDoc对开发人员友好,可以通过Docker或其他编程环境舒适地容纳应用程序,从而能够适应许多业务工作流程。 例如,在医疗、金融和法律部门,文件的保密性意味着一切。 IronSecureDoc结合了组织内文件加密和控制的功能,确保安全保存,使其能够与外部合作伙伴或客户遵从、简单和安全地共享。

IronSecureDoc如何工作

IronSecureDoc以Docker容器形式提供,通过API端点提供的构建功能曝光,以保持其可扩展性和一致性。 开发人员从容器注册表中拉取预构建的IronSecureDoc Docker镜像并将其包含在他们的应用程序中。

IronSecureDoc的文件工作流

  • 使用Docker Build Push Action创建并推送IronSecureDoc容器。
  • 在AWS ECS或Kubernetes等云平台上部署同一容器。
  • 将您的应用程序与IronSecureDoc集成,以便进行任何文件操作。

安装并运行 IronSecureDoc

要从下面的GitHub存储库中拉取IronSecureDoc Docker镜像,请在命令提示符或打开的终端窗口中运行以下命令。

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker Build Push Action(开发者的工作原理):图3 - 拉取Docker镜像

从Docker容器中拉取镜像后,我们还有另一个命令来启动IronSecureDoc,一个运行中的容器。

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

上述Docker运行命令将创建IronSecureDoc的容器实例。

使用IronSecureDoc

IronSecureDoc的REST API在其他地方进行了讨论,但基本上,它允许用户在安装和启动Docker时立即编辑、认证和加密文档。 这是文档的 链接

Docker Build Push Action(开发者的工作原理):图4 - REST API

我们还可以通过像这样发布到IronSecureDoc API来加密文档:

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

这将自动将文档路由到IronSecureDoc,文档将在那里正确加密。

结论

一切都从Docker Build Push Action和IronSecureDoc开始。 它们合并了两个非常强大的工具,这些工具可以解锁用于工作流的容器化,使得自动化和可扩展的开发变得安全。 Docker Build Push Action负责容器镜像开发过程中的自动化构建和部署,IronSecureDoc负责这些容器内的强大文档安全性。 这一切都归结为来自开发人员的流线型管道和在各环境中可靠的性能。 无论您是在管理应用程序的部署还是安全处理敏感文档,这些工具在您的工作流中将推动您迈向现代高效的软件开发。

IronSecureDoc:可以添加文件加密、访问控制以及使用数字签名验证文档真实性的文档特定安全功能。 一起,Docker证书和IronSecureDoc提供了完整的安全周期,从基础设施到存储的敏感数据全方位保护。 要了解更多关于IronSecureDoc许可证的信息,请访问 授权页面。 有关Iron Software的多种产品的信息,请关注此 库套件链接

常见问题解答

如何在C#中将HTML转换为PDF?

你可以使用IronPDF的RenderHtmlAsPdf方法将HTML字符串转换为PDF。你还可以使用RenderHtmlFileAsPdf将HTML文件转换为PDF。

什么是 Docker?

Docker 是一个开源平台,它通过使用容器简化了应用程序的构建、部署和管理。这些容器将应用程序及其依赖项打包在一起,确保在不同环境中的行为一致。

Docker Build Push Action 如何简化工作流过程?

Docker Build Push Action 在 GitHub 存储库中自动化构建和推送 Docker 镜像,减少错误并节省时间。它创建了由代码推送或拉取请求等事件触发的工作流。

为什么 Docker 对开发人员有用?

Docker 对开发人员有用,因为它将应用程序封装在容器中,确保一致的性能并减轻跨不同环境的兼容性问题。这简化了开发、部署和管理过程。

使用 Docker 容器的优势是什么?

Docker 容器提供了可移植性、可扩展性和环境一致性等优势。它们将应用程序及其依赖项封装在一起,从而减少了兼容性问题并提高了部署效率。

IronSecureDoc 如何确保文档安全?

IronSecureDoc 使用强大的加密技术(如 AES-256)保护数字文档,并具有密码保护和数字签名等功能。它在需要高保密性的行业(如医疗和金融)中特别实用。

IronSecureDoc 能否集成到现有工作流中?

是的,IronSecureDoc 可以集成到现有工作流中,因为它作为 Docker 容器运行,并通过 API 端点提供功能。这使其在各种部署场景中灵活且易于使用。

Docker Build Push Action 如何提高部署效率?

Docker Build Push Action 通过自动化构建和推送 Docker 镜像的过程来提高部署效率,确保一致的镜像创建,并通过与 Kubernetes 等平台的集成来减少停机时间。

Docker 镜像在应用程序部署中扮演什么角色?

Docker 镜像作为容器的蓝图,包含应用程序及其依赖项。它们确保跨不同环境的一致性,使其对可靠的应用程序部署至关重要。

如何使用 GitHub Actions 自动构建 Docker 镜像?

要使用 GitHub Actions 自动构建 Docker 镜像,需创建一个工作流文件,该文件指定了代码推送等触发器,使用 Docker 登录和构建操作,并将构建的镜像推送到注册表。此自动化简化了构建和部署过程。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。