IRONSECUREDOCの使用

Docker Build Push Action (開発者向けの仕組み)

チャクニット・ビン
チャクニット・ビン
2025年1月14日
共有:

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 アクションは、3つの基本的なことを行います。

  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"]
# 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"]
$vbLabelText   $csharpLabel

2: レジストリの資格情報をGitHub Secretsとして追加

コンテナレジストリにDockerイメージをビルドしてプッシュするには、認証情報が必要です。 これらをGitHubのシークレットとして追加してください。

  • GitHubのリポジトリ設定に移動します。
  • シークレットと変数 > アクションに移動します。

    次のシークレットを追加します:

    USERNAME: あなたのDocker Hubのユーザー名。

    PASSWORD: Docker Hub のアクセス トークンまたはパスワード。

    他のレジストリの場合、これも同様ですが、AWS_ACCESS_KEY_IDやAWS_SECRET_ACCESS_KEYなど、例えばAmazon ECRに対しては追加の資格情報が必要な場合があります。

    3: GitHub Actions ワークフローを作成する

    以下の行をYAMLワークフローファイル(.github/workflows/docker-build-push.yml)に追加してください。

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
$vbLabelText   $csharpLabel

メインへのプッシュ: ワークフローは、メインブランチへのすべてのプッシュが発生するたびにトリガーされます。

チェックアウトコード: actions/checkout アクションを利用してリポジトリをチェックアウトします。

レジストリにログイン: 提供されたシークレットを使用してDocker Hubで認証します。

ビルドとプッシュ: これはDocker Build Push Actionを実行し、現在のディレクトリからコンテキストまでイメージをビルドし、username/repository:latestにプッシュします。

ワークフロー ファイルをリポジトリにコミットします。 簡単なプッシュで、ワークフローがトリガーされ、イメージがビルドされ、指定されたレジストリにプッシュされます。

IronSecureDocとは何ですか?

IronSecureDocは、特にかなり強力な暗号化とコントロールを通じてデジタル文書、主にPDFを保護するために設計されたIron Softwareの新製品です。 これにより、組織は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 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 runコマンドは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'

これは文書を自動的にIronSecureDocにルートし、適切に暗号化されます。

結論

すべてはDocker Build Push ActionとIronSecureDocから始まります。 非常に強力な2つのツールを統合し、安全で自動化されたスケーラブルな開発を可能にするワークフローのコンテナ化の能力を解除します。 Docker Build Push Actionは、コンテナイメージの開発プロセスにおける自動構築とデプロイを担当し、IronSecureDocはそれらのコンテナ内で堅牢なドキュメントセキュリティを管理します。 それはすべて、開発者から効率化されたパイプラインと環境全体での信頼性の高いパフォーマンスに帰着します。 アプリケーションの展開を管理する場合でも、機密文書を保護する場合でも、これらのツールは、効率的なモダンソフトウェア開発へとあなたを導きます。

IronSecureDoc: ファイルの暗号化、アクセス制御、デジタル署名を使用した文書の真正性の認証など、文書に特化したセキュリティ機能を追加することができます。 Docker証明書とIronSecureDocは、インフラストラクチャから保存されている機密データまで、すべてを保護するフルサイクルのセキュリティを提供します。 IronSecureDocのライセンスについて詳しく知るには、ライセンスページをご覧ください。 Iron Softwareの多くの製品に関する情報については、このライブラリスイートリンクをご覧ください。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
Coolify Docker Compose(開発者向けの仕組み)
次へ >
DockerでC#を使用してPDF APIを保護する方法