使用 IRONSECUREDOC

Docker Build Push Action(對開發者的運作方式)

發佈 2025年1月14日
分享:

什麼是 Docker?

Docker是一個開源的強大工具,通過將應用程式置入輕量化、可攜帶的容器中,使構建、部署和管理應用程式變得更加簡單。 容器打包應用程式及其依賴項,包括庫、配置檔案等,以便其可以跨環境運行。 這消除了所有相容性問題,意味著應用程式在開發人員的筆記型電腦上與在伺服器或雲端上運行的方式相同。 它通過有效地構建工具、交付和運行,簡化了開發、測試和擴展過程。容器,因此更簡單地管理資源。

Docker 建構推送操作(對開發者的運作方式):圖 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 registry 中拉取或建立多平台映像,從而減少停機時間。

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"]
# 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"]
#Use Node.js as the base image
#Set the working directory
#Copy package.json and install dependencies
#Copy the application code
#Expose the application's port
#Start the application
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'FROM node:14 WORKDIR /app COPY package.json.RUN npm install COPY. . EXPOSE 3000 CMD ["npm", "start"]
VB   C#

2:將註冊表憑證添加為 GitHub Secrets

要構建和推送 Docker 映像到容器註冊表,您需要憑證。 將這些添加為 GitHub Secrets:

  • 進入 GitHub 上的存儲庫設定。
  • 前往「Secrets and Variables」>「Actions」。

    新增以下密鑰:

    使用者名稱:您的 Docker Hub 使用者名稱。

    密碼:您的 Docker Hub 存取令牌或密碼。

    對於其他註冊表,此過程類似,但有時需要額外的憑證,例如,Amazon ECR 需要 AWS_ACCESS_KEY_ID 和 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.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_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.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_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
Private name:
	  #Step 1: Check out the repository
	  #Step 2: Log in to Docker Hub
Docker Build [and] Push [on]: push: branches: - main jobs: build: runs-[on]: ubuntu-latest steps: - name: Checkout code uses: actions/checkoutv3 - name: Log in [to] Docker Hub uses: docker/login-actionv2 [with]: username: ReadOnly Property $() As
	If True Then
		secrets.DOCKER_USERNAME
	End If
End Property
		  Private password:
		  $
		  If True Then
			  If True Then
				  secrets.DOCKER_PASSWORD
			  End If
		  End If
	  #Step 3: Build and push the Docker image
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	  - name: Build @and push uses: docker/build-push-action@v4 @with: context: .push: True tags: username/repository:latest
VB   C#

推送到主要分支: 每次推送到主要分支時,工作流程將觸發。

結帳代碼: 使用 actions/checkout 操作來檢出存儲庫。

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

建置和推送: 執行 Docker Build Push Action,從當前目錄開始建置映像直到上下文,並推送至 username/repository: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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker pull ironsoftwareofficial/ironsecuredoc
VB   C#

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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
VB   C#

上述的 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'
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'curl -X 'POST' \ 'http: -H 'accept: */ *' \ -H 'Content-Type: multipart/form-data' \ -F 'pdf_file=@test.pdf;type=application/pdf'
VB   C#

這將自動將文件路由到 IronSecureDoc,並在那裡正確地加密。

結論

一切始於 Docker Build Push Action 和 IronSecureDoc。 他們結合了兩個非常強大的工具,解鎖了可以將工作流程容器化的能力,並且確保自動化和可擴展的開發是安全的。 Docker Build Push Action 負責在容器映像的開發過程中自動構建和部署,而 IronSecureDoc 則在這些容器中處理強大的文檔安全性。 這一切都歸功於開發者的精簡流程和在各個環境中的可靠性能。 無論您是在管理應用程式的部署還是保護敏感文檔,這些工具在您的工作流程中將促使您邁向現代高效的軟體開發。

IronSecureDoc:可以添加特定於文件的安全功能,包括文件加密、訪問控制和使用數位簽名驗證文件真實性。 Docker 憑證與 IronSecureDoc 結合,提供全流程的安全性,保護從基礎架構到存儲的敏感資料的一切。 要了解有關 IronSecureDoc 授權的更多資訊,請造訪授權頁面. 如需了解有關 Iron Software 許多產品的資訊,請參考此程式庫套件連結.

< 上一頁
Coolify Docker Compose(其運作方式對於開發者)
下一個 >
如何使用 C# 在 Docker 中保護 PDF API