LoginSignup
1
0

More than 1 year has passed since last update.

JenkinsをAWS上で動かす①

Last updated at Posted at 2021-05-30

はじめに

Jenkins × Docker × AWS で動かしてみようとしています。
内容が長くなると思うので複数回にわけてまとめています。
自己学習の目的でやっているので、読みづらいかもしれませんができるだけ分かりやすくまとめていきたいと思っています。

今回やること

Jenkins

まずはこれをDocker上で動かします。

なんでこんな事するの?

JenkinsをそのままPCにインストールして動かす事もできますが、その場合、PCに最低限Javaが入っていなければいけません。

そんな状態でJenkinsを動かしているサーバーを移行するってなった場合、一から環境を用意する必要があります。
開発経験がある方はわかると思いますが、同じ環境を用意するのって意外と大変だったりします。
手順通りにやったのに、俺だけ動かないんだけど。。みたいな経験はあると思います。
Jenkinsの場合だとJenkinsで使うプラグインのインストールし直しなども発生してきます。

そこでDockerを使ってコマンド1発であらかじめ必要なものがインストールされている環境を作ろうというわけです。
そうすれば簡単に同じ環境が作れるので。

環境

  • Ubuntu 20.04.1 LTS (初期セットアップ状態 JavaやJenkinsなどはインストールされていない)

Docker環境の用意

Dockerを使うため最低限Dockerを入れる必要があります。
それ以外は必要ありません。なのでDockerだけはいれてあげましょう

Dockerがインストールされていることを確認

$ docker -v
Docker version 19.03.8, build afacb8b7f0

Dokcer上でJenkinsを動かす

Dockerが入ればあとは簡単です。
Docker上でJenkinsを動かせばいいのですが既に公式が用意してくれています。

なので我々は下記コマンドを打つだけでJenkinsの起動するところまでもっていけます。超簡単

docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk11

次にコンテナが変わっても同じデータを使うようにしておきます。
Dockerを動かすとわかりますが、上記のコマンドを実行し、Ctrl + Cで抜けたあと
再度上記のコマンドを実行すると、コンテナIDが変わります。

$ docker container ls
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                              NAMES
47b654c3bbc5        jenkins/jenkins:lts-jdk11   "/sbin/tini -- /usr/…"   2 minutes ago       Up 2 minutes        0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   charming_golick
$ docker container ls
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                              NAMES
df2e4f0ba204        jenkins/jenkins:lts-jdk11   "/sbin/tini -- /usr/…"   38 seconds ago      Up 37 seconds       0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   sweet_dijkstra

コンテナIDが変わればコンテナ内に保存されていたデータは消えてしまいます。
つまり、上記のコマンドでは毎回、初期状態で起動してしまいます。

そのため、コンテナIDが変わっても使いまわしたいデータはマウントしておく必要があります。

docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11

これで/var/jenkins_homeに保存されるデータ(Jenkinsのプラグインやユーザー情報などなど)はローカルのjenkins_homeディレクトリに保存されコンテナ起動時にjenkins_homeあるデータが使われコンテナIDに変わっても同じ状態で起動してくれます。

おわりに

今回はDokcer上でJenkinsを動かすところまでまとめました。
しかし最低限必要なものしか入っていません。
次は必要なプラグインインストール済みのJenkins環境作成についてまとめていきます。

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