Redmine入門:dockerで作るRedmine環境 -Vol.5-

スポンサーリンク
Redmine入門:dockerで作るRedmine環境 -Vol.5- 環境構築
Redmine入門:dockerで作るRedmine環境 -Vol.5-
この記事は約4分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、dockerで作るRedmine環境について解説しています。

スポンサーリンク

背景

dockerで作るRedmine環境について調査する機会がありましたので、その時の内容を備忘として記事に残しました。

構成ファイル一覧

下記のファイルを用意します。各ファイルの内容は次のセクションもしくは、次回以降の記事に記載しています。

        new file:   redmine/Dockerfile
        new file:   mysql/Dockerfile
        new file:   compose.yml
        new file:   Makefile

Makefile

SHELL = /bin/bash
WORK_DIR = ./
.DEFAULT_GOAL := help

# コンテナの状態
.PHONY: ps
ps:
	cd $(WORK_DIR) \
	&& docker compose ps

# アプリのビルド
.PHONY: build
build:
	cd $(WORK_DIR) \
	&& docker compose build

# アプリの起動
.PHONY: up
up:
	cd $(WORK_DIR) \
	&& docker compose up -d

# アプリの停止
.PHONY: down
down:
	cd $(WORK_DIR) \
	&& docker compose down

# コンテナの削除
.PHONY: clean
clean:
	cd $(WORK_DIR) \
	&& docker compose down --rmi all --volumes --remove-orphans

# ログ
.PHONY: logs
logs:
	cd $(WORK_DIR) \
	&& docker compose logs

# help
.PHONY: help
help:
	@grep -B 2 -E '^[a-zA-Z_-]+:' Makefile \
	| grep -v '.PHONY' \
    | grep -v -E '^\s*$$' \
	| tr '\n' ',' \
	| sed 's/--,/\n/g' \
	| awk -F, '{printf "%-20s %s\n", $$2, $$1}'

このコードは、Makefileと呼ばれるファイルで、Dockerコンテナの操作を簡単にするためのターミナルコマンドを定義しています。

  1. SHELL = /bin/bash
  • このMakefileで使用するシェルをbashに設定しています。
  1. WORK_DIR = ./
  • 作業ディレクトリを現在のディレクトリに設定しています。
  1. .DEFAULT_GOAL := help
  • Makefileを実行した際に、ターゲットが指定されていない場合、helpターゲットを実行するように設定しています。
  1. .PHONY: ターゲット名
  • 疑似ターゲットを定義しています。これらのターゲットはファイルではなく、コマンドを実行するためのものです。
  1. ps:
  • Docker Composeで実行中のコンテナの状態を表示します。
  1. build:
  • Docker Composeを使ってDockerイメージをビルドします。
  1. up:
  • Docker Composeを使ってコンテナを起動します。-dオプションでバックグラウンドで実行します。
  1. down:
  • 実行中のコンテナを停止して削除します。
  1. clean:
  • すべてのコンテナ、イメージ、ボリュームを削除して、環境をクリーンな状態に戻します。
  1. logs:
    • 実行中のコンテナのログを表示します。
  2. help:
    • Makefileに定義されているターゲットとその説明を表示します。

このMakefileを使うことで、Docker Composeを使ったアプリケーションの開発や運用を簡単に行えるようになります。例えば、make buildでイメージをビルド、make upでコンテナを起動、make logsでログを確認、make downで停止、make cleanで環境をクリーンアップすることができます。

おわりに

今日は、dockerで作るRedmine環境について解説しました。

次回は動作するまでを説明していきたいと思います。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

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