跳至頁尾內容
USING IRONSECUREDOC

Docker Build Push Action(開發者如何工作)

什麼是Docker?

Docker 是一個開源的強大工具,透過將應用程式放入輕量且可攜的容器中,使得建構、部署和管理應用程式變得更簡單。 容器將應用程式及其相依項目打包,包括程式庫、配置檔案等,因此即使是在不同環境中也能運行。 這樣可消除所有的相容性問題,意味著應用程式在開發者的筆記型電腦、伺服器或雲端上運作的效果都一樣。 它透過高效地建置工具、運送和運行容器來簡化開發、測試和擴展過程,從而更簡單地管理資源。

Docker Build Push Action(如何為開發者工作):圖1 - Docker

什麼是Docker影像?

影像是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和變數 > Actions。

新增以下Secrets:

  • USERNAME:您的Docker Hub使用者名。
  • PASSWORD:您的Docker Hub存取令牌或密碼。

對於其他註冊表,則類似,但有時需要額外的憑證,例如,Amazon ECR的AWS_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操作檢出儲存庫。

註冊表登錄: 使用提供的Secrets驗證Docker Hub。

建構和推送: 它運行Docker Build Push Action,將影像從目前目錄建構到上下文並推送到使用者名/儲存庫:latest。

將工作流程檔案提交到您的儲存庫。 簡單地推送,工作流程會觸發建構影像並將其推送到您指定的註冊表中。

T>## 什麼是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進行任何文件操作的通信。

T>### 安裝和運行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 建置推送操作如何簡化工作流程?

Docker 建置推送操作自動化了 GitHub 儲存庫中 Docker 映像的建置和推送,減少錯誤並節省時間。它建立由程式碼推送或拉取請求等事件觸發的工作流程。

為什麼 Docker 對開發者有用?

Docker 對開發者有用,因為它將應用程式封裝在容器中,確保性能一致,並減少在不同環境中的相容性問題。這簡化了開發、部署和管理過程。

using Docker 容器的優點是什麼?

Docker 容器提供便攜性、可擴展性和跨環境一致性的優勢。它們將應用程式及其依賴項封裝在一起,減少相容性問題,提升部署效率。

IronSecureDoc 如何確保文件安全?

IronSecureDoc 使用強大的加密技術(如 AES-256)、密碼保護和數位簽章等功能來保護數位文件。在需求高機密性的行業(如醫療和金融)中特別有用。

IronSecureDoc 能否整合到現有工作流程中?

是的,IronSecureDoc 可以整合到現有工作流程中,因為它作為 Docker 容器運行,並通過 API 端點提供功能。這使得它在各種部署場景中靈活且易於使用。

Docker 建置推送操作如何提升部署效率?

Docker 建置推送操作通過自動化 Docker 映像的建置和推送過程,確保一致的映像建立,並通過與 Kubernetes 等平台的整合減少停機時間來提升部署效率。

Docker 映像在應用程式部署中的角色是什麼?

Docker 映像作為容器的藍圖,包含應用程式及其依賴項。它們確保不同環境中的一致性,對於可靠的應用程式部署至關重要。

我如何通過 GitHub Actions 自動化 Docker 映像建置?

要通過 GitHub Actions 自動化 Docker 映像建置,建立一個工作流程文件,指定類似程式碼推送的觸發器,使用 Docker 登錄和建置操作,並將建置的映像推送到註冊表。此自動化簡化了建置和部署過程。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話