EC2インスタンスにJenkinsをコンテナで立ち上げる - tetsuyaf1100/hello-world GitHub Wiki

前提条件

docker docker-compose

docker-compose.yml 作成

docker-compose.yml

version: '3.5'

services:
  jenkins:
    image: jenkins:latest
    container_name: jenkins
    restart: always
    ports:
      - 3001:8080
    environment:
      JENKINS_OPTS: '--prefix=/jenkins'
    volumes:
      - /var/www/jenkins/home:/var/jenkins_home

Jenkinsディレクトリ権限変更

jenkinsユーザでないと、コンテナが立ち上がらず、エラーとなる。
コンテナ内のjenkinsユーザ1000:1000に権限変更する。

$ sudo su
# cd /var/www
# chown -R 1000:1000 jenkins

Jenkins起動

$ docker-compose up -d
$ docker-compose ps
 Name                Command               State                 Ports
------------------------------------------------------------------------------------
jenkins   /bin/tini -- /usr/local/bi ...   Up      50000/tcp, 0.0.0.0:8080->8080/tcp

Jenkins update

jenkins.war をダウンロードし、配置すればアップデートする。

$ docker-compose exec -u root jenkins bash

  (コンテナで実行)
  $ cd /usr/share/jenkins/
  $ wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
  $ exit

$ docker-compose stop && docker-compose start

参考


JENKINS_HOME
 +- config.xml     (Jenkinsの設定ファイル)
 +- *.xml          (他のシステム全体に関係する設定ファイル)
 +- fingerprints   (ファイルの指紋を保存)
 +- plugins        (プラグイン)
 +- jobs
     +- [JOBNAME]      (各ジョブ毎のサブディレクトリ)
         +- config.xml     (ジョブ設定ファイル)
         +- workspace      (バージョン管理システム用のワークディレクトリ)
         +- latest         (成功した最新のビルドへのシンボリックリンク)
         +- builds
             +- [BUILD_ID]     (各ビルド毎)
                 +- build.xml      (ビルド結果のサマリー)
                 +- log            (ログファイル)
                 +- changelog.xml  (変更履歴)