LoginSignup
0
2

More than 5 years have passed since last update.

JenkinsJobをDockerで処理する(2. ビルド用Dockerイメージの作成)

Last updated at Posted at 2017-08-12

前回はDockerPrivateRegistry環境を構築しました。今回はプロダクトをビルドするための環境をDockerで作成します。

2. ビルド用Dockerイメージの作成

GitLabプロジェクトの作成

まずはDockerイメージのpush先となるGitLabプロジェクトを作成します。今回はjenkinsグループにdockerプロジェクトを作成します。作成時にはContainer Registryを有効にしておいてください。

ベースとなるDockerイメージの作成

次にベースとなるDockerイメージを作成します。このイメージではプロダクトのビルドに直接は関係しないが、共通して必要となるであろうツールなどの設定を行います。

Ubuntuをベースにlocale設定とcurl,gitをインストールします。

Dockerfile_base
FROM ubuntu:trusty

RUN locale-gen ja_JP.UTF-8 &&\
    apt-get -q update &&\
    DEBIAN_FRONTEND="noninteractive" apt-get -q upgrade -y -o Dpkg::Options::="--force-confnew" --no-install-recommends &&\
    apt-get -q autoremove &&\
    apt-get -q clean -y && rm -rf /var/lib/apt/lists/* && rm -f /var/cache/apt/*.bin

ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8

RUN apt-get -q update &&\
    DEBIAN_FRONTEND="noninteractive" apt-get -q install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends curl git &&\
    apt-get -q clean -y && rm -rf /var/lib/apt/lists/* && rm -f /var/cache/apt/*.bin

以下のコマンドでイメージを作成します。

$ docker build -t gitlab.example.com:5000/jenkins/docker/base:1.0.0 -f Dockerfile_base .

最後に作成したイメージをPrivateDockerRegistryにpushします。docker loginの際に入力するアカウント、パスワードはGitLabのアカウント、パスワードです。

$ docker login gitlab.example.com:5000
$ docker push gitlab.example.com:5000/jenkins/docker/base:1.0.0

ビルド用のDockerイメージ作成

作成したベースイメージを基に、プロダクトのビルドに必要なツールをインストールしたイメージを作成します。

今回は、Java8, Node.jsをインストールしたイメージを作成します。

Dockerfile_java8_node
FROM gitlab.example.com:5000/jenkins/docker/base:1.0.0

# install JDK 8
RUN apt-get -q update &&\
    DEBIAN_FRONTEND="noninteractive" apt-get -q install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends software-properties-common &&\
    add-apt-repository -y ppa:openjdk-r/ppa &&\
    apt-get -q update &&\
    DEBIAN_FRONTEND="noninteractive" apt-get -q install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends openjdk-8-jdk &&\
    apt-get -q clean -y && rm -rf /var/lib/apt/lists/* && rm -f /var/cache/apt/*.bin

# install Node.js
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash &&\
    DEBIAN_FRONTEND="noninteractive" apt-get -q install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends nodejs &&\
    apt-get -q clean -y && rm -rf /var/lib/apt/lists/* && rm -f /var/cache/apt/*.bin
$ docker build -t gitlab.example.com:5000/jenkins/docker/java8_node:1.0.0 -f Dockerfile_java8_node .
$ docker login gitlab.example.com:5000
$ docker push gitlab.example.com:5000/jenkins/docker/java8_node:1.0.0

これでビルド用のDockerイメージができました。次回はJenkinsJobの作成しDockerイメージを使ったビルドをできるようにします。

0
2
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
2