フッターコンテンツにスキップ
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の動作原理

Build and Push 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"]

2: レジストリの認証情報をGitHub Secretsとして追加する

Dockerイメージをコンテナレジストリにビルドおよびプッシュするには、資格情報が必要です。 これらをGitHub Secretsとして追加します。

  • GitHub上のリポジトリ設定に移動します。
  • Secrets and 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

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

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

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

ビルドとプッシュ: 現在のディレクトリから、最新のコンテキストまでイメージをビルドし、ユーザー名/リポジトリにプッシュするDocker Build Push Actionを実行します。

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

IronSecureDocとは何ですか?

IronSecureDocは、特にPDFといったデジタルドキュメントを強力な暗号化と制御を通じて保護するためにIron Softwareが開発した新製品です。 これにより、AES-256のような高度な暗号化プロトコルを組織にインストールできるため、許可を受けた人だけが閲覧できる状態を保つことができます。 つまり、承認されたユーザーのみがそのドキュメントを開くことができるということであり、印刷、編集、コピーはカスタム許可と共に制限されているからです。 また、パスワード保護やデジタル署名も、ドキュメントのセキュリティと整合性、透かしを強化します。

Docker Build Push Action (開発者向けの動作原理): 図 2 - IronSecureDoc: PDF Security and Compliance Server

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から始まります。 それらは2つの非常に強力なツールを統合し、自動化されたスケーラブルな開発を備えたワークフローを安全にコンテナ化する能力を解き放ちます。 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は、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。