フッターコンテンツにスキップ
IRONSECUREDOCを使用する

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

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レジストリから直接またはマルチプラットフォームイメージをプルまたは構築し、ダウンタイムを削減します。

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"]

2: レジストリ資格情報をGitHub Secretとして追加する

Dockerイメージをコンテナレジストリに構築・プッシュするには、資格情報が必要です。 これらをGitHub Secretとして追加します:

  • 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に認証します。

ビルドとプッシュ: 現在のディレクトリからイメージをビルドしてユーザー名/リポジトリ:latestにプッシュするDocker Build Push Actionを実行します。

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

IronSecureDoc とは何ですか?

IronSecureDocは、主にPDFなどのデジタル文書を非常に強力な暗号化とコントロールで保護するために設計されたIron Softwareの新しく開発された製品です。 これにより、組織がAES-256のような高度な暗号化プロトコルをインストールできるようになり、言及された機密情報が認可された許可なしに表示されないようにします。 つまり、印刷、編集、コピーに制限があり、カスタム許可があるため、言及された文書は認可されたユーザーのみが開くことができます。 また、パスワード保護とデジタル署名は、文書とウォーターマーキングにおけるセキュリティと整合性を強化します。

Docker ビルド プッシュ アクション (開発者向けの動作方法): 図 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
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 runコマンドは、IronSecureDocのコンテナインスタンスを作成します。

IronSecureDocの使用法

IronSecureDocのREST APIは、ユーザーがインストール後に文書を修正、認証、暗号化可能にします。 ここでは、ドキュメントへのリンクです。

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 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 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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね