跳過到頁腳內容
使用 IRONSECUREDOC

Docker 建置推送動作(對開發人員而言如何運作)

什麼是 Docker?

Docker是一個強大的開源工具,它將應用程式放入輕量級、可移植的容器中,從而簡化了應用程式的建置、部署和管理。 容器將應用程式及其依賴項(包括庫、設定檔等)打包在一起,以便它可以在不同的環境中運行。 這樣就消除了所有相容性問題,這意味著該應用程式在開發人員的筆記型電腦上、在伺服器或雲端運行情況都相同。 它透過有效率地建置工具、交付和運行容器來簡化開發、測試和擴展流程,從而更簡單地管理資源。

Docker 建置推送操作(開發者操作指南):圖 1 - Docker

什麼是Docker映像?

映像像是一種 Docker 類型的藍圖,它承載著一致的執行環境。 開發人員可以利用 Docker Hub(一個公開註冊表)中現成的映像,或建立自己的 Docker 映像。 Docker Compose 和 Kubernetes 等工具透過為更多平台添加簡單的多容器設定編排或管理複雜的擴充需求,進一步擴展了 Docker 的功能。

為什麼要使用 Docker 建置推送操作?

無摩擦自動化

手動建置和推送 Docker 映像有風險、容易出錯且耗時。 自動化這些步驟可以確保可預測性,並增加最終收益,尤其是在團隊規模擴大或更新更頻繁的情況下。

無摩擦集成

Docker Build Push Action 可直接用於 GitHub 存儲庫,以創建圍繞事件(如代碼推送、拉取請求或計劃)的工作流程。

影像標準建構

自動化確保每次建置 Docker 映像時,它們都相同; 因此,可以減少開發、測試和生產等多個環境中的錯誤/差異。

易於部署

透過建置流程自動建置 Docker 映像,並將其推送到儲存庫,部署就變得相對容易了。 可以使用 Kubernetes 或 Docker Swarm 等工具直接從 Docker 映像倉庫拉取或建置多平台映像,從而減少停機時間。

Docker 建置推送操作的工作原理

建置和推送 Docker 操作主要執行三個操作:

  1. 設定 Docker 登入:容器註冊表驗證,以安全地推送 Docker 映像。
  2. 映像建置:使用包含指令的 Dockerfile 執行 Docker 建置指令。
  3. 推送到登錄:將建置的鏡像推送到目標容器註冊表。

這些步驟在 GitHub Actions 工作流程檔案 (.github/workflows/your-workflow.yml) 中定義,您可以在其中指定觸發器、建立設定和登錄憑證。

實作 Docker 建置推送操作

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上的倉庫設定。
  • 轉到"密鑰和變數">"操作"。

新增以下密鑰:

  • 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

推送到主分支:此工作流程將觸發向主分支發生的每一次推送。

檢出程式碼:使用 actions/checkout 操作檢出儲存庫。

登入註冊表:使用提供的金鑰透過 Docker Hub 進行身份驗證。

建置和推送:它運行 Docker 建置推送操作,該操作將從當前目錄建立映像,直到上下文,並將其推送到 username/repository: latest。

將工作流程檔案提交到您的程式碼倉庫。 只需簡單推送一下,工作流程就會觸發,建立鏡像並將其推送到您指定的註冊表中。

IronSecureDoc是什麼?

IronSecureDoc是 Iron Software 新開發的一款產品,專門用於保護數位文件(主要是 PDF),它透過非常強大的加密和控制功能來實現這一目標。 這將使組織能夠安裝 AES-256 等高級加密協議,從而防止未經授權的人查看所述敏感資訊。 這意味著只有授權使用者才能開啟該文檔,因為列印、編輯和複製該文檔都受到限制,並具有自訂權限。 此外,密碼保護和數位簽章增強了文件的安全性和完整性,並增加了浮水印功能。

Docker 建置推播操作(開發者操作指南):圖 2 - IronSecureDoc:PDF 安全與合規伺服器

IronSecureDoc 對開發者非常友好,可以透過 Docker 或其他程式設計環境輕鬆託管應用程序,因此應該能夠適應許多業務工作流程。 例如,在醫療、金融和法律領域,文件的保密性至關重要。 IronSecureDoc 將組織內部文件的加密和控制功能與確保文件安全保存的功能相結合,從而實現合規性,並能輕鬆安全地與外部合作夥伴或客戶共享文件。

IronSecureDoc 的工作原理

IronSecureDoc 以 Docker 容器的形式提供,並透過 API 端點提供對建置功能的訪問,從而保持其可擴展性和一致性。 開發人員從容器註冊表中拉取 IronSecureDoc 的預先建置 Docker 映像,並將其包含在他們的應用程式中。

使用 IronSecureDoc 進行文件工作流程

  • 使用 Docker 建置推送操作建立並推送 IronSecureDoc 容器。
  • 在 AWS ECS 或 Kubernetes 等雲端平台上部署相同的容器。
  • 將您的應用程式與 IronSecureDoc 集成,以進行任何文件操作。

安裝並執行 IronSecureDoc

若要從下面的 GitHub 儲存庫拉取 IronSecureDoc Docker 映像,請在命令提示字元或開啟的終端機視窗中執行以下命令。

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker 建置推送操作(開發者操作指南):圖 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 建置推播操作(開發者操作指南):圖 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 建置推送操作和 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 建置推送動作 (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 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。