LoginSignup
12
24

More than 5 years have passed since last update.

Dockerでredmine, jenkins, gitlab, nexus3, archiva の開発環境を構築する

Last updated at Posted at 2017-11-11

本稿の目的

  • Dockerを開発に新規導入したいが、あまりスキルのないSEが環境構築する際に活用する手順の確立。

ホスト環境の前提条件

  • OS:Ubuntu x64

Dockerのインストール

フリーのDocker環境としては、Docker CE(Community Edition)とDocker Compose が公開されている。前者はDockerエンジン呼ばれる仮想化やDockerイメージの管理を行うDockerの本体である。後者は複数のDockerイメージを連携して動作させる場合に用いるオプションツールである。

Docker CE

Docker Compose

  • docker composeをダウンロードする。
sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  • 実行権限を付与する。
sudo chmod +x /usr/local/bin/docker-compose
  • インストール完了を確認する。
docker-compose --version

よく使う開発ツールの導入

独断と偏見で、以下の開発ツールを採用した。

docker-composeファイル作成

docker-compose.yml
version: '3.1'

services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'localhost:80'
    volumes:
      - 'gitlab-etc:/etc/gitlab'
      - 'gitlab-logs:/var/log/gitlab'
      - 'gitlab-data:/var/opt/gitlab'
    ports:
      - '80:80'
      - '10081:10081'
      - '10082:10082'
      - '10443:443'
      - '10022:22'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost:80'
        mattermost_external_url 'http://localhost:10081'
        registry_external_url 'http://localhost:10082'
    links:
      - 'gitlab-runner'
      - 'gitlab-specific-runner'
      - 'nexus'

  gitlab-runner:
    image: 'gitlab/gitlab-runner:latest'
    restart: always
    volumes:
      - 'gitlab-runner-etc:/etc/gitlab-runner'
      - 'gitlab-runner-home:/home/gitlab-runner'
      - '/var/run/docker.sock:/var/run/docker.soc'

  gitlab-specific-runner:
    image: 'gitlab/gitlab-runner:latest'
    restart: always
    volumes:
      - 'gitlab-specific-runner-etc:/etc/gitlab-runner'
      - 'gitlab-specific-runner-home:/home/gitlab-runner'
      - '/var/run/docker.sock:/var/run/docker.soc'

  redmine:
    image: 'redmine:latest'
    restart: always
    ports:
      - '23000:3000'
    volumes:
      - 'redmine-files:/usr/src/redmine/files'
    environment:
      REDMINE_DB_POSTGRES: 'redmine-db'
      REDMINE_DB_PASSWORD: 'example'
    links:
      - 'gitlab'

  redmine-db:
    image: 'postgres:latest'
    restart: always
    volumes:
      - 'redmine-db-data:/var/lib/postgresql/data'
    environment:
      MYSQL_ROOT_PASSWORD: 'example'
      MYSQL_DATABASE: 'redmine'

  nexus:
    image: 'sonatype/nexus3:latest'
    restart: always
    ports:
      - '48081:8081'
    volumes:
      - 'nexus-data:/nexus-data'

  jenkins:
    image: 'jenkins:latest'
    restart: always
    volumes:
      - 'jenkins-home:/var/jenkins_home'
    ports:
      - '58080:8080'
      - '50000:50000'
    links:
      - 'gitlab'
      - 'nexus'

  archiva:
    image: 'xetusoss/archiva'
    restart: always
    volumes:
      - 'archiva-data:/archiva-data'
    ports:
      - '1080:8080'

volumes:
  gitlab-etc:
  gitlab-logs:
  gitlab-data:
  gitlab-runner-etc:
  gitlab-runner-home:
  gitlab-specific-runner-etc:
  gitlab-specific-runner-home:
  redmine-files:
  redmine-db-data:
  nexus-data:
  jenkins-home:
  archiva-data:

動作確認

コンソールで以下のコマンドを実行。

up.sh
docker-compose -f docker-compose.yml up -d

ブラウザで以下のリンク先を表示できることを確認する。(JenkinsとNexus3は立ち上がりに若干時間がかかる)

初期ユーザとパスワードは以下の通り。

NAME USER PASSWORD
GitLab root 初期表示画面で設定
Redmine admin admin
Nexus3 admin admin123
Jenkins - /var/jenkins_home/secrets/initialAdminPassword に記載されたハッシュ値
archiva admin 初期設定画面で設定

Jenkinsのハッシュ値は以下のコマンドでコンテナに入って確認する。

docker exec -it docker_jenkins_1 bash

volumeの代わりにローカルディレクトリを使う場合

JenkinsとNexus3のDocker Imageだけは事前にホスト側に特定のユーザでディレクトリを作成して置かなければならない。

jenkins.sh
#!/bin/sh

mkdir -p /srv/jenkins
chown -R 1000 /srv/jenkins
nexus.sh
#!/bin/sh

mkdir -p /srv/nexus/nexus-data
chown -R 200 /srv/nexus/nexus-data

参考サイトリスト

12
24
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
12
24