このガイドでは、Dockerを使ってCI/CDパイプラインを構築する方法について紹介します。
まずは、CI/CDが何なのかをざっくり説明します。
CIは、Continuous Integration(継続的インテグレーション)の略で、コードを頻繁に統合しテストするプロセスです。これにより、バグを早期に発見できます。
CDは、Continuous Delivery(継続的デリバリー)またはContinuous Deployment(継続的デプロイメント)の略です。コードを本番環境に自動で配布するプロセスを指します。これにより、ソフトウェアを迅速にリリースできるようになります。
次に、Dockerを使うメリットを見てみましょう。
Dockerを使うことで、ローカル開発環境と本番環境が一致するので、「自分の環境では動くのに」という問題が減ります。
Dockerはコンテナを使うため、必要に応じて簡単にスケールアップできます。
ここからは、実際にDockerを使ってCI/CDパイプラインを作成する手順を見ていきます。
まずは、Dockerfileを作成して、アプリケーションのイメージをビルドします。以下がその例です。
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
GitHubにリポジトリを作成し、コードをプッシュします。
GitHub Actionsを使って、CI/CDパイプラインを構築します。以下は設定ファイルの例です。
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build Docker image
run: docker build -t my-app .
- name: Push Docker image
run: docker push my-app
GitHub Actionsが成功すると、DockerイメージがDocker Hubに自動でプッシュされます。
Dockerを使ったCI/CDパイプラインの構築は、初めは難しそうに感じるかもしれませんが、慣れればとても便利です。環境の一貫性やスケーラビリティなど、さまざまなメリットがあるので、ぜひ試してみてください!