118
144

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CI/CDAdvent Calendar 2022

Day 1

DockerでDevOps環境を整える

Last updated at Posted at 2022-11-12

DockerでDevOpsな環境を整える

ここ数年、炎上してる案件にアサインされてる。。
傾向として、svnでブランチがいっぱい作ってマージでデグレしたり、
Excelでバグ表を管理したり、ガントチャートを手作業で管理したり、
結合テストの段階までプログラムを動かしたテストをしてない、
テストが自動化されていないと惨憺たる状況が見られる。。。

正直、付き合ってられない😭
チンパンジーを相手にしてる気分、

ということで、docker-composeを使って、進捗/バグ管理にRedmine
ソース管理と自動テストのためにgitlab,gitlab-runnerの環境を整えてみました。

ソースコードやバグの管理、テストの自動化などに使っていただければ幸いです。

docker-compose.ymlファイル

docker-compose.yml
version: "3"

volumes:
  # gitlab関連Volume
  gitlab-config:
    name: gitlab-config
  gitlab-logs:
    name: gitlab-logs
  gitlab-data:
    name: gitlab-data
  gitlab-runner-config:
    name: gitlab-runner-config
  # redmine関連 Volume
  redmine-plugins:
    name: redmine-plugins
  redmine-themes:
    name: redmine-themes
  redmine-db:
    name: redmine-db

networks:
  cicd-network: # gitlab-redmine用ネットワーク
    name: cicd-network
    driver: bridge
    ipam:
     driver: default
     config:
       - subnet: 172.27.11.0/24
         gateway: 172.27.11.1

services:
  # redmine 本体
  redmine:
    container_name: redmine
    image: redmine
    restart: always
    ports: # Redmine公開port
      - 8081:3000
    environment:
      REDMINE_DB_MYSQL: redmine-db
      REDMINE_DB_PASSWORD: redminepass
    volumes:
      - redmine-plugins:/usr/src/redmine/plugins
      - redmine-themes:/usr/src/redmine/public/themes
    networks:
      cicd-network:
        ipv4_address: 172.27.11.2

  redmine-db:
    image: mysql:5.7
    container_name: redmine-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: redminepass
      MYSQL_DATABASE: redmine
    volumes:
      - redmine-db:/var/lib/mysql
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci   
    networks:
      cicd-network:
        ipv4_address: 172.27.11.3

  # GitLab関連コンテナ
  lab:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'gitlab.com'
    container_name: gitlab
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.my.com'
    ports: # git公開ポート       
      - '8080:80'
      # - '443:443'
      # - '22:22'
    volumes:
      - 'gitlab-config:/etc/gitlab'
      - 'gitlab-logs:/var/log/gitlab'
      - 'gitlab-data:/var/opt/gitlab'
    shm_size: '256m'
    networks:
      cicd-network:
        ipv4_address: 172.27.11.4

  runner:
    image: gitlab/gitlab-runner:latest    
    restart: always
    container_name: gitlab-runner
    volumes:
       # dind でもいいが、今回はDooDでDockerHostのソケットファイルを共有
      - /var/run/docker.sock:/var/run/docker.sock
      - gitlab-runner-config:/etc/gitlab-runner
    networks:
      cicd-network:
        ipv4_address: 172.27.11.5

コンテナを起動する。

上記のdocker-compose.ymlを格納したディレクトリで以下のコマンドを実行するだけです。

docker-compose up -d

GitLabにログインする

http://<DockerhostのIP>:8080/でログイン画面を開く、
初回はrootでログインする。

パスワード以下のコマンドで取得できる。

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

ログイン画面

Redmineにログインする

http://<DockerhostのIP>:8081/でログイン画面を開く。
デフォルトでユーザー名,パスワードが共にadminとなっている。

gitlab-runnerでCI/CDの設定をする

  1. gitlab-runnerのコンテナに入り、gitlab-runner registerを実行する。

    # runner のコンテナに入って、gitlab-runnerに登録する
    docker exec -it gitlab-runner  /bin/bash 
    gitlab-runner register
    
  2. URLを聞かれたら、http://172.27.11.4:80を入力する
    (docker-compose.ymlでipを振ってるので、DockerホストのIPに置き換えなくていいです。🤗)

  3. tokenを聞かれたら、
    gitlabのページから「settings」→「CI/CD」→「Runners」をクリックして、
    「Specific runners」でtokenをコピーする。
    スクリーンショット 2022-11-13 5.37.46.png

  4. runnerのdescription、テストを実行するタグなどが聞かれる。
    (適当に入力してください、入力せずにenterでも大丈夫)

  5. 実行環境が聞かれるので、やりたいことに合わせて適宜入力する。
    (shellにするとあれこれ聞いてこないので楽🤗)

    スクリーンショット 2022-11-13 5.36.30.png

  6. gitlab-runner registerの設定が終わって、gitlabの画面を更新すると
    追加したrunnerが確認できる。

  7. 追加されたrunnerでeditをクリックし、「Run untagged jobs」にチェックする。

    スクリーンショット 2022-11-13 5.49.15.png

    スクリーンショット 2022-11-13 5.54.44.png

  8. 最後に.gitlab-ci.yml ファイルをコミットするとrunnerが動くようになる。

118
144
2

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
118
144

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?