LoginSignup
0
0

More than 1 year has passed since last update.

JenkinsをAWS上で動かす②

Last updated at Posted at 2021-05-30

はじめに

Jenkins × Docker × AWS で動かしてみようとしています。
内容が長くなると思うので複数回にわけてまとめています。

の続きになります。

今回やること

前回、Dockerを使って、公式が提供しているJenkinsのイメージからJenkins起動までを行いました。しかし、これだけでは最低限必要なものしか入っていないので、
追加したいものを入れたイメージを作っていきます。

ベースは公式のイメージでそれに必要なものを追加してきます。

Dockerfileの作成

公式イメージに追加でJenkinsのプラグイン「configuration-as-code」が入ったイメージ
を作成するDockerfileを作成します。

Dockerfile
FROM jenkins/jenkins:lts

# セットアップウィザードを無効化する
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"

# プラグインのインストール
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt

# configuration-as-codeプラグインを使って予めadmin userを作成
COPY jenkins-casc.yaml /usr/local/jenkins-casc.yaml
ENV CASC_JENKINS_CONFIG /usr/local/jenkins-casc.yaml

プラグインのインストールについてはJenkinsの公式が提供している方法をそのまま使います。

plugins.txtというファイルを用意して、そこにインストールしたいプラグイン名を記載しておけば
インストールしてくれます。超便利

FROM jenkins/jenkins:lts-jdk11
COPY --chown=jenkins:jenkins plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN jenkins-plugin-cli -f /usr/share/jenkins/ref/plugins.txt

今回はこんな感じ。

plugins.txt
configuration-as-code

configuration-as-codeはJenkinsの設定をyaml形式で記述し、その内容に従って設定してくれるというプラグインです。今回はユーザー設定だけ設定したyamlを用意しました。

jenkins-casc.yaml
jenkins:
  securityRealm:
    local:
      allowsSignup: false
      users:
        - id: "admin"
          password: "admin"
        - id: "dev"
          password: "dev"

これを特定の場所にコピーして環境変数として定義してあげるだけです。

# configuration-as-codeプラグインを使って予めadmin userを作成
COPY jenkins-casc.yaml /usr/local/jenkins-casc.yaml
ENV CASC_JENKINS_CONFIG /usr/local/jenkins-casc.yaml

イメージの作成

Dockerfileができたので、それをもとにイメージを作ります。

docker image build -t イメージ名[:タグ名] [Dockerfileが配置されているディレクトリパス]

イメージ名、タグ、はお好きなものにしてください。
今回はdockerコマンドを実行するディレクトリにDockerfileを置いているのでパスは「.」にします。


$ docker image build -t satoru/myjenkins:0.1.0 .

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
satoru/myjenkins    0.1.0               c0917eb4fea5        26 seconds ago      580MB
jenkins/jenkins     lts                 3c87c42366c1        3 weeks ago         576MB

イメージができたら起動させてみます。前回はイメージ名を「jenkins/jenkins:lts-jdk11」にしていますが、今回は「satoru/myjenkins:0.1.0」にしてあります。

docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home satoru/myjenkins:0.1.0

起動してみるとわかりますが、「configuration-as-code」プラグインが入った状態のJenkinsが立ち上がります。簡単!!

おわりに

今回はプラグインインストール済みのJenkins環境を立ち上げるところまでまとめました。
次はこの作成したイメージを使ってAWSのECR上で動かして行きたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0