Mac mini上でCI/CDを行うためにJenkinsサーバーを構築しました。
CI/CDには色々なサービスがありますが、そこまで使わないのと社内だけで使用する事を想定した場合のための記録です。
今回はMacに直接インストールせず、Docker上にJenkinsイメージを作成して稼働させます。
またLaravelのテストを完了させるまでを目的としております。
LaravelのプロジェクトにDocker環境を構築するため、Docker in Dockerを想定しております。
0. 環境
- Mac 15.4.1
- docker 27.4.0
- docker-compose v2.31.0-desktop.2
- Jenkins 2.504.1
1. Dockerfileの作成
JenkinsのDockerfileを作成します。
Dockerの中に更にDockerをインストールし、MacにインストールされているDockerを利用するために権限に一工夫を加えております。
作成したDockerfileは「.docker/jenkins」フォルダを作成して、そこに設置します。
FROM jenkins/jenkins:lts
USER root
# パッケージリストを更新し、必要なツールをインストール
RUN apt-get update && \
apt-get install -y --no-install-recommends \
git \
curl \
apt-transport-https \
ca-certificates \
gnupg \
lsb-release
# Docker クライアントのインストール
RUN mkdir -p /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
apt-get install -y --no-install-recommends docker-ce-cli
# docker-compose のインストール
RUN curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose
# Mac側のDockeを利用するため、jenkins ユーザーとrootを同じグループにする
RUN usermod -aG 0 jenkins
# ユーザーを jenkins に戻す
USER jenkins
2. docker-compose.yml の記述
Docker自体は以前にもインストールしているので省略します。
まずは「docker-compose.yml」を作成します。
services:
jenkins:
build:
context: .
dockerfile: .docker/jenkins/Dockerfile
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./jenkins_data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock # Docker in Docker用の設定
environment:
- JAVA_OPTS=-Duser.timezone=Asia/Tokyo
restart: unless-stopped
networks:
- default
上記ファイルを作成後にイメージをビルドします。
docker-compose build
ビルドが完了すると、コンテナを起動します。
docker-compose up -d
2. Jenkinsの初期設定
以下のURLにアクセスすると、初期パスワードを入力する画面が表示されます。
http://localhost:8083/
初期パスワードは、dockerコマンドで取得することができます。
docker logs jenkins
以下のようにパスワードが表示されます。(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXにパスワードが表示されます)
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
取得した初期パスワードを入力して「Continue」を押下します。

次のページで「Install suggested plugins」を選択しましょう。
よほどの入れたいものがある場合にカスタムにしましょう。

次のページでログインIDとパスワードを設定します。

次のページでJenkinsのURLを入力しましょう。

入力を完了するとJenkinsの画面となります。

一旦、今回はJenkinsの構築までをまとめました。
ローカルでCI/CD環境を試していこうと思います。