Member-only story

Gitlab CIとDockerによるCI/CDパイプライン(パート1)

gavin.zhou
10 min readAug 11, 2022

--

本記事では、Gitlab CIとDockerを使って、MERN(MongoDB Express ReactJS NodeJS)アプリケーションのCI/CDパイプラインを設計する手順について説明します。

CI/CD フロー

1. レポにコミットした開発者は、CIプロセスのトリガーとなります。

2. CIプロセスを経て、masterからpull requestができるようになります。masterブランチからのコミットがあると、CDプロセスのトリガーとなります。

3. CDプロセスはDockerイメージを構築し、そのイメージをstagingにデプロイします。

4. 次に、本番環境にデプロイするために、アプリケーションが公開できる状態にあることを確認するために、手動で操作する必要があります。

サーバー環境

1. DigitaloceanのVPSを使用する予定です

2. アプリケーションはDocker環境の上で実行されます

3. フロントエンドとバックエンドのチームが分かれていると仮定して、フロントエンドはステージング段階、バックエンドは本番段階をそれぞれ持つことにします。

4. リバースプロキシとしてNginxを利用し、ホスト名でユーザーを誘導します。

5. プロキシ、フロントエンド、バックエンド、データベースはすべてDockerコンテナに格納され、Dockerネットワークで接続されています。

前回の記事で作成したMERN Stackアプリケーションを使用します。使用するアプリケーションは、こちらからダウンロードできます:バックエンドフロントエンド

このプロジェクトでは、バックエンドとフロントエンドのアプリケーションは別々のチームが作ることを想定しているので、リポジトリを分けます。

バックエンドの準備

バックエンドのソースコードをローカルに用意し、Docker用のコンフィギュレーションファイルをいくつか作成します。このファイル構成を見てください。

--

--

No responses yet