ホームページ 運用・保守 Linuxの運用と保守 継続的インテグレーションと継続的デプロイメントのために Docker を使用する方法

継続的インテグレーションと継続的デプロイメントのために Docker を使用する方法

Nov 08, 2023 pm 01:28 PM
docker 継続的インテグレーション 継続的な展開

継続的インテグレーションと継続的デプロイメントのために Docker を使用する方法

Docker を使用して継続的インテグレーションと継続的デプロイメントを行う方法

ソフトウェア開発の急速な発展に伴い、最新のソフトウェア開発プロセスでは継続的インテグレーションと継続的デプロイメントが不可欠になっています。の一部。コンテナ化プラットフォームとして、Docker は継続的統合と継続的デプロイメントのプロセスを大幅に簡素化できます。この記事では、Docker を使用して継続的インテグレーションと継続的デプロイメントを行う方法を紹介し、具体的なコード例を示します。

1. 継続的インテグレーション

継続的インテグレーションとは、開発者のコ​​ード変更を共有リポジトリに頻繁にマージし、頻繁にビルドとテストを行うことを指します。継続的統合に Docker を使用すると、環境構成とビルド プロセスが簡素化され、開発効率が向上します。

  1. Dockerfile の作成

Dockerfile は、Docker イメージを構築するために使用されるスクリプト ファイルです。プロジェクトのルート ディレクトリに Dockerfile という名前のファイルを作成し、次のコード例を追加します。

# 使用官方的 Node.js 镜像作为基础镜像
FROM node:alpine

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json 到工作目录
COPY package*.json ./

# 安装项目依赖
RUN npm install

# 将项目文件复制到工作目录
COPY . .

# 暴露端口
EXPOSE 3000

# 运行应用
CMD ["npm", "start"]
ログイン後にコピー

この Dockerfile ファイルは、Node.js ベースのイメージを定義し、プロジェクトの依存関係をイメージにインストールし、アプリケーションのファイルとコピーを行います。コードを作業ディレクトリにコピーします。最後に、ポートを公開してアプリケーションを実行します。

  1. Docker イメージのビルド

プロジェクト ルート ディレクトリで、次のコマンドを使用して Docker イメージを構築します。

docker build -t my-app .
ログイン後にコピー

このコマンドは、以下に基づいています。 Dockerfile ファイルの定義、my-app という名前のイメージをビルドします。

  1. コンテナ化テスト

プロジェクトのルート ディレクトリに docker-compose.test.yml という名前のファイルを作成し、次のコード例を追加します:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      - db
    command: npm run test
  db:
    image: mongo
ログイン後にコピー

この docker-compose.test.yml ファイルは 2 つのサービスを定義します。1 つはアプリケーション サービスである app サービス、もう 1 つはデータベース サービスである db サービスです。このファイルは、2 つのサービスを実行し、アプリ サービスでテスト コマンドを実行するように Docker に指示します。

プロジェクトのルート ディレクトリで、次のコマンドを使用してテスト コンテナーを実行します。

docker-compose -f docker-compose.test.yml up
ログイン後にコピー

このコマンドは、アプリ サービスとデータベース サービスを開始し、テスト コマンドを実行します。

  1. 自動化された継続的インテグレーション

継続的インテグレーションの目的は、開発者のコ​​ード変更をメイン コードに迅速かつ頻繁にマージし、自動化されたビルドとテストを実行することです。 Jenkins や GitLab CI などのツールを使用して、自動化された継続的インテグレーションを実装できます。

Jenkins を例として、Jenkinsfile という名前のファイルを作成し、次のコード例を追加します。

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                sh 'docker build -t my-app .'
            }
        }
        stage('Test') {
            steps {
                sh 'docker-compose -f docker-compose.test.yml up'
            }
        }
    }
}
ログイン後にコピー

この Jenkinsfile ファイルは、ビルドとテストの 2 つのステージを含む Jenkins パイプラインを定義します。ビルドフェーズでは、docker build コマンドを実行して Docker イメージをビルドし、テストフェーズでは、docker-compose コマンドを実行してテストコンテナを起動します。

Jenkinsfile ファイルをプロジェクトのルート ディレクトリに追加し、自動継続的統合用に Jenkins サーバーを構成します。

2. 継続的デプロイメント

継続的デプロイメントとは、継続的統合の完了後にコードを実稼働環境に自動的にデプロイすることを指します。継続的なデプロイに Docker を使用すると、デプロイ プロセスを大幅に簡素化できます。

  1. Docker イメージの作成

前の手順で作成した Dockerfile を使用して、アプリケーション コードを含む Docker イメージを構築します。

  1. docker-compose.yml ファイルを作成する

プロジェクトのルート ディレクトリに docker-compose.yml という名前のファイルを作成し、次のコード例を追加します。

version: '3'
services:
  app:
    image: my-app:latest
    restart: always
    ports:
      - 80:3000
ログイン後にコピー

この docker-compose.yml ファイルは、アプリ サービスを実行し、構築されたばかりの my-app イメージを基本イメージとして使用するように Docker に指示します。さらに、ポート マッピングやその他のサービスを構成できます。

    アプリケーションをデプロイする
次のコマンドを使用して、運用環境にアプリケーションをデプロイします。

docker-compose up -d
ログイン後にコピー
このコマンドは、アプリケーション サービスを開始します。バックグラウンドを作成し、ホストのポート 80 で公開します。

上記は、継続的インテグレーションと継続的デプロイメントに Docker を使用する方法に関する具体的な手順とコード例です。 Docker を使用すると、環境構成と展開プロセスを簡素化し、開発効率とアプリケーションの信頼性を向上させることができます。

以上が継続的インテグレーションと継続的デプロイメントのために Docker を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerによってコンテナを出る方法 Dockerによってコンテナを出る方法 Apr 15, 2025 pm 12:15 PM

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerを再起動する方法 Dockerを再起動する方法 Apr 15, 2025 pm 12:06 PM

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Dockerプロセスを表示する方法 Dockerプロセスを表示する方法 Apr 15, 2025 am 11:48 AM

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

See all articles