DockerとGitを連携する方法|具体例付きでわかりやすく解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年9月)

✔当記事は次のような疑問をお持ちの方々へ向けて書きました:

「DockerとGitをどのように一緒に使うのか?」

「Docker内でGitを使う手順を知りたい」

「DockerとGitの実際の使用例を見てみたい」

✔当記事を通じて得られる知識

  • DockerとGitの連携の基本概念
  • Docker内でGitを活用する方法とその手順
  • DockerとGitの具体的な使用例

当記事ではDockerとGitの基本的な連携方法から、具体的な手順や使用例まで、わかりやすく具体的な内容で説明しています。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

DockerとGitの基本

こちらでは、Docker・Gitそれぞれの基本についてお伝えしていきます。

  • Dockerとは?
  • Gitとは?

Dockerとは?

Dockerとは、アプリケーションとその依存関係をひとつの「コンテナ」としてパッケージ化する技術です。

その主な利点は、異なる環境でも同じように動作すること。

WindowsやMac、Linuxなど、さまざまなOSで使えるのが特徴です。

インストールがまだの方は以下の記事を参考に、自身の環境にDockerを用意しましょう。

Gitの深層と設定

Gitは、分散バージョン管理システムで、コードの変更履歴を追跡します。

複数人での作業はもちろん、個人による開発で、よく使われるツールです。

例えばGitにより、以下のようなことが達成できます。

  • コードの変更履歴を閲覧できる
  • コードを過去の履歴時の状態に戻せる
  • バグの修正や新規の機能開発など、別作業を同時におこなえる

長期に渡る開発には、必須の仕組みだといえるでしょう。

Dockerをより深く理解しよう

こちらでは、Dockerをより深く理解するための情報をお伝えしていきます。

主に以下の内容です。

  • Dockerfileとは
  • docker-compose.ymlでできること
  • .devcontainer/devcontainer.jsonの秘密

Dockerfileの行間を読む

Dockerfileは、Dockerイメージを作成するための指示書です。

以下は一般的なDockerfileの例です。

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3
CMD ["python3", "-m", "http.server", "8000"]

このDockerfileにより、以下のようなイメージが作れます。

  • Ubuntu 20.04をベースにPython3をインストールする
  • PythonのHTTPサーバをポート8000で起動する

docker-compose.ymlの理制

docker-compose.ymlは、複数のコンテナの管理と連携を助けるファイルです。

各コンテナはServicesというブロック内に「web」「db」などの名前で設定されます。

以下は「web」というサービス名のコンテナを起動する例です。

version: '3'
services:
  web:
    build: .
    ports:
      - "8000:8000"

現在のディレクトリにあるDockerfileを使用してwebサービスをビルド。

ホストの8000番ポートとコンテナの8000番ポートをマッピングします。

.devcontainer/devcontainer.jsonの秘密

devcontainer.jsonは、VS CodeのRemote – Containers拡張機能で使用される設定ファイルのこと。

開発環境をコンテナ内に構築する際の設定を記述します。

{
  "name": "Python 3",
  "build": {
    "dockerfile": "Dockerfile",
    "context": ".."
  },
  "runArgs": ["-p", "8000:8000"],
  "settings": {
    "terminal.integrated.shell.linux": "/bin/bash"
  }
}

実戦準備:DockerとGitの連携

こちらでは、実戦準備についてお伝えしていきます。

  • Dockerコンテナ内のGitの操縦
  • DockerイメージとGitリポジトリの連携

Dockerコンテナ内のGitの操縦

Dockerコンテナ内でGitを使用する場合、まずGitをインストールする必要があります。

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y git

上記のDockerfileは、Ubuntu 20.04をベースにGitをインストールするものです。

コンテナ内でGitを使用することで、コードの変更を容易にトラックできます。

DockerイメージとGitリポジトリの連携

DockerイメージとGitリポジトリを連携させることで、イメージのバージョンとコードのバージョンを一致させられます。

例えばDocker HubとGitHub Actionsを使用して、新しいコードがプッシュされるたびに自動的にイメージをビルド・プッシュする設定が可能です。

name: Build and Push Docker Image

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Login to Docker Hub
      uses: docker/login-action@v1
      with:
        username: ${{ secrets.DOCKER_HUB_USERNAME }}
        password: ${{ secrets.DOCKER_HUB_PASSWORD }}

    - name: Build and push Docker image
      run: |
        docker build -t your_dockerhub_username/your_repository_name:${{ github.sha }} .
        docker push your_dockerhub_username/your_repository_name:${{ github.sha }}

テンプレートのクローンから開発環境を整える手順

こちらでは、テンプレートのクローンから開発環境を整える手順についてお伝えしていきます。

  • テンプレートのクローン
  • 開発環境の整備

テンプレートのクローン

Gitを使用してテンプレートをクローンすることで、開発を迅速に開始できます。

以下は一般的なクローンの手順です。

git clone https://github.com/your-repository/template.git
cd template

このコマンドで、指定したリポジトリのテンプレートをローカルマシンにクローンし、そのディレクトリに移動します。

開発環境の整備

クローンしたテンプレートを基に、開発環境を整える必要があります。

Dockerを使用している場合、以下のコマンドで環境を構築可能です。

docker-compose up -d

これにより、docker-compose.ymlに基づいてコンテナが起動し、開発環境が整います。

さらなる成長:バーナスヒントとテクニック

こちらでは、「さらなる成長」についてお伝えしていきます。

  • DockerとGitのベストプラクティス
  • よく遭遇するエラーとその対処法

DockerとGitのベストプラクティス

DockerとGitを効果的に使用するためのベストプラクティスは多数存在します。

  • Docker:イメージのサイズを小さく保つためにマルチステージビルドを活用する
  • Git:コミットメッセージを明確にすることで履歴の追跡を容易にする

よく遭遇するエラーとその対処法

DockerやGitを使用する際には、さまざまなエラーに遭遇することがあります。

よくあるエラーの例としては、以下のようなものです。

port is already allocated

指定したポートが既に使用されている場合に発生します。

使用中のポートを確認し、別のポートを指定することで解決してください。

まとめ

当記事では、DockerとGitの連携についてお伝えしてきました。

この知識は、開発プロジェクトを効率的に進め、プロフェッショナルな結果を生む力となります。

いろいろと試しながら、自分なりのやり方を構築するのも良いでしょう。

ぜひ当記事を参考にしなら、よりやりやすい方法を見つけてください。

タイトルとURLをコピーしました