JHipsterのプロジェクトをGitLabでCI/CDする
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 目次 [#i097eb1f]
#contents
** JHipsterのCI/CDのページ [#x83b0348]
https://www.jhipster.tech/setting-up-ci/
** GitLabのCI/CDのページ [#ofc55fbb]
dockerで動かす際の説明
https://docs.gitlab.com/runner/install/docker.html
https://about.gitlab.com/features/continuous-integration/
** .gitlab-ci.yml ファイルとは [#e450d961]
.gitlab-ci.yml ファイルはパイプラインの構造と順序を定義し...
- GitLab Runnerを使って実行する内容。
- 特定の状況において、どのような判断をするか。例えば、処...
** .gitlab-ci.ymlのリファレンス [#h1cf516a]
https://gitlab-docs.creationline.com/ee/ci/yaml/
*** GitLabのクイックスタート [#xee0cfc6]
https://gitlab-docs.creationline.com/ee/ci/quick_start/RE...
** GitLabの設定サンプル [#dd8c86af]
https://gitlab-docs.creationline.com/ee/ci/examples/READM...
*** mavenを使った例 [#z4fd2745]
https://gitlab-docs.creationline.com/ee/ci/examples/artif...
*** spring-bootを使った例 [#pa163e7d]
https://gitlab-docs.creationline.com/ee/ci/examples/deplo...
** jhipster ci-cdをためす [#bcee8a31]
jhipster ci-cd
を実行してみる
選択枝でGitLabを選ぶ
In GitLab CI, perform the build in a docker container
となる。
y
を選ぶ
.gitlab-ci.yml
が変更になる
** .gitlab-ci.yml に追加されたコード [#z53e08e5]
追加のタスクは何もなしで進むと以下のコードが追加された
image: jhipster/jhipster:v7.9.3
cache:
key: '$CI_COMMIT_REF_NAME'
paths:
- .maven/
stages:
- check
- build
- test
- analyze
- package
- release
- deploy
before_script:
- export MAVEN_USER_HOME=`pwd`/.maven
nohttp:
stage: check
script:
- ./mvnw -ntp checkstyle:check -Dmaven.repo.local=$M...
maven-compile:
stage: build
script:
- ./mvnw -ntp compile -P-webapp -Dmaven.repo.local=$...
artifacts:
paths:
- target/classes/
- target/generated-sources/
expire_in: 1 day
maven-test:
services:
- docker:dind
variables:
# Instruct Testcontainers to use the daemon of DinD.
DOCKER_HOST: 'tcp://docker:2375'
# Improve performance with overlayfs.
DOCKER_DRIVER: overlay2
stage: test
script:
- ./mvnw -ntp verify -P-webapp -Dmaven.repo.local=$M...
artifacts:
reports:
junit:
- target/surefire-reports/TEST-*.xml
- target/failsafe-reports/TEST-*.xml
paths:
- target/surefire-reports
- target/failsafe-reports
- target/site
expire_in: 1 day
frontend-test:
stage: test
script:
- npm install
- npm test
artifacts:
reports:
junit: target/test-results/TESTS-results-jest.xml
paths:
- target/test-results
- target/jacoco
expire_in: 1 day
maven-package:
stage: package
script:
- ./mvnw -ntp verify -Pprod -DskipTests -Dmaven.repo...
artifacts:
paths:
- target/*.jar
- target/classes
expire_in: 1 day
# Uncomment the following line to use gitlabs container ...
#docker-push:
# stage: release
# variables:
# REGISTRY_URL: registry.gitlab.com
# IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SL...
# dependencies:
# - maven-package
# script:
# - ./mvnw -ntp jib:build -Pprod -Djib.to.image=$...
* GitLab Runnerは別サーバー? [#qef7020e]
もしかしてGitLabRunnerは別サーバにたてるのだろうか?
以下に構築方法を解説しているサイトがあった。
https://www.alpha.co.jp/blog/202208_01#%E3%82%AD%E3%83%A3...
* Dockerコンテナでgitlabとgitlab-runnerを構築してCI/CD [#...
https://syachiku.net/docker-gitlab-gitlab-runner/
* docker-composeに追加するコード [#cab9639f]
gitlab-runner:
image: gitlab/gitlab-runner:latest
container_name: gitlab-runner
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/gitlab/gitlab-runner-config:/etc/gitlab-ru...
ports:
- "8093:8093"
** 必要なディレクトリやファイルを作成 [#v7daa150]
mkdir -p /root/gitlab/gitlab-runner-config
** GitLab Runnerを使用する前に、GitLabの管理者アカウント...
*** GitLabの公式ドキュメント [#kfa9f19c]
https://docs.gitlab.com/runner/
正直、オンプレミスではどうしたらよいのか親切には書いてな...
* 日本語の解説サイト [#z19e0b20]
** GitLab Runner構築のススメ [#v2853f1d]
https://www.gitlab.jp/blog/2022/09/26/runner-summary/
画面のキャプチャとかあって、本家よりわかりやすいかもしれ...
*** 手順 [#yf300046]
- GitLab全体の基本設定のほうではなく、プロジェクトのサイ...
- Specific runnersに表示されているURL (GitLabのURLです)と...
メモしたい項目の具体的な項目名:
- Register the runner with this URL:
- And this registration token:
*** gitlab-runnerのコンテナ名の調査 [#x6580623]
docker-compose ps
起動させてあるのが、前提条件ですが、上記のコマンドで、実...
*** docker-imageへのログイン [#c23330d0]
docker exec -it 上記手順で調べたドッカーコンテナ名 bash
*** 登録コマンドの実行 [#rfc64fc7]
コマンドを実行する前に、どのようなコマンドがあるのか確認...
gitlab-runner --help
*** gitlab-runner-2というコンテナ名で、helpオプションを実...
# docker exec -it gitlab-runner-2 gitlab-runner --help
NAME:
gitlab-runner - a GitLab Runner
USAGE:
gitlab-runner [global options] command [command optio...
VERSION:
15.10.1 (dcfb4b66)
AUTHOR:
GitLab Inc. <support@gitlab.com>
COMMANDS:
exec execute a build locally
list List all configured runners
run run multi runner service
register register a new runner
reset-token reset a runner's token
install install service
uninstall uninstall service
start start service
stop stop service
restart restart service
status get status of a service
run-single start single runner
unregister unregister specific runner
verify verify all registered runners
artifacts-downloader download and extract build arti...
artifacts-uploader create and upload build artifac...
cache-archiver create and upload cache artifac...
cache-extractor download and extract cache arti...
cache-init changed permissions for cache p...
health-check check health for a specific add...
read-logs reads job logs from a file, use...
help, h Shows a list of commands or hel...
GLOBAL OPTIONS:
--cpuprofile value write cpu profile to fil...
--debug debug mode [$RUNNER_DEBUG]
--log-format value Choose log format (optio...
--log-level value, -l value Log level (options: debu...
--help, -h show help
--version, -v print the version
登録に実行するコマンドは、以下のコマンドですが、、
gitlab-runner register
** gitlab-runner registerのオプションの量がやばい量ある件...
[root@localhost gitlab]# docker exec -it gitlab-runner-2...
Runtime platform arch...
NAME:
gitlab-runner register - register a new runner
USAGE:
gitlab-runner register [command options] [arguments...]
OPTIONS:
-c value, --config value ...
--template-config value ...
--tag-list value ...
-n, --non-interactive ...
--leave-runner ...
-r value, --registration-token value ...
--run-untagged ...
--locked ...
--access-level value ...
--maximum-timeout value ...
--paused ...
--maintenance-note value ...
--name value, --description value ...
--limit value ...
--output-limit value ...
--request-concurrency value ...
--unhealthy-requests-limit value ...
--unhealthy-interval value ...
-u value, --url value ...
-t value, --token value ...
--tls-ca-file value ...
--tls-cert-file value ...
--tls-key-file value ...
--executor value ...
--builds-dir value ...
--cache-dir value ...
--clone-url value ...
--env value ...
--pre-clone-script value ...
--post-clone-script value ...
--pre-get-sources-script value ...
--post-get-sources-script value ...
--pre-build-script value ...
--post-build-script value ...
--debug-trace-disabled ...
--shell value ...
--custom_build_dir-enabled ...
--cache-type value ...
--cache-path value ...
--cache-shared ...
--cache-max_uploaded_archive_size value ...
--cache-s3-server-address value ...
--cache-s3-access-key value ...
--cache-s3-secret-key value ...
--cache-s3-bucket-name value ...
--cache-s3-bucket-location value ...
--cache-s3-insecure ...
--cache-s3-authentication_type value ...
--cache-s3-server-side-encryption value ...
--cache-s3-server-side-encryption-key-id value ...
--cache-gcs-access-id value ...
--cache-gcs-private-key value ...
--cache-gcs-credentials-file value ...
--cache-gcs-bucket-name value ...
--cache-azure-account-name value ...
--cache-azure-account-key value ...
--cache-azure-container-name value ...
--cache-azure-storage-domain value ...
--feature-flags value ...
--ssh-user value ...
--ssh-password value ...
--ssh-host value ...
--ssh-port value ...
--ssh-identity-file value ...
--ssh-disable-strict-host-key-checking value ...
--ssh-known-hosts-file value ...
--docker-host value ...
--docker-cert-path value ...
--docker-tlsverify ...
--docker-hostname value ...
--docker-image value ...
--docker-runtime value ...
--docker-memory value ...
--docker-memory-swap value ...
--docker-memory-reservation value ...
--docker-cpuset-cpus value ...
--docker-cpus value ...
--docker-cpu-shares value ...
--docker-dns value ...
--docker-dns-search value ...
--docker-privileged ...
--docker-services_privileged value ...
--docker-disable-entrypoint-overwrite ...
--docker-user value ...
--docker-userns value ...
--docker-cap-add value ...
--docker-cap-drop value ...
--docker-oom-kill-disable ...
--docker-oom-score-adjust value ...
--docker-security-opt value ...
--docker-services-security-opt value ...
--docker-devices value, --omitempty value ...
--docker-device-cgroup-rules value ...
--docker-gpus value ...
--docker-disable-cache ...
--docker-volumes value ...
--docker-volume-driver value ...
--docker-volume-driver-ops value ...
--docker-cache-dir value ...
--docker-extra-hosts value ...
--docker-volumes-from value ...
--docker-network-mode value ...
--docker-ipcmode value ...
--docker-mac-address value ...
--docker-links value ...
--docker-wait-for-services-timeout value ...
--docker-allowed-images value ...
--docker-allowed-pull-policies value ...
--docker-allowed-services value ...
--docker-pull-policy value ...
--docker-isolation value ...
--docker-shm-size value ...
--docker-tmpfs value ...
--docker-services-tmpfs value ...
--docker-sysctls value ...
--docker-helper-image value ...
--docker-helper-image-flavor value ...
--docker-container-labels value ...
--docker-enable-ipv6 ...
--parallels-base-name value ...
--parallels-template-name value ...
--parallels-disable-snapshots ...
--parallels-time-server value ...
--parallels-allowed-images value ...
--virtualbox-base-name value ...
--virtualbox-base-snapshot value ...
--virtualbox-base-folder value ...
--virtualbox-disable-snapshots ...
--virtualbox-allowed-images value ...
--virtualbox-start-type value ...
--machine-max-growth-rate value ...
--machine-idle-nodes value ...
--machine-idle-scale-factor value ...
--machine-idle-count-min value ...
--machine-idle-time value ...
--machine-max-builds value ...
--machine-machine-driver value ...
--machine-machine-name value ...
--machine-machine-options value ...
--kubernetes-host value ...
--kubernetes-cert-file value ...
--kubernetes-key-file value ...
--kubernetes-ca-file value ...
--kubernetes-bearer_token_overwrite_allowed ...
--kubernetes-bearer_token value ...
--kubernetes-image value ...
--kubernetes-namespace value ...
--kubernetes-namespace_overwrite_allowed value ...
--kubernetes-privileged value ...
--kubernetes-runtime-class-name value ...
--kubernetes-allow-privilege-escalation value ...
--kubernetes-cpu-limit value ...
--kubernetes-cpu-limit-overwrite-max-allowed value ...
--kubernetes-cpu-request value ...
--kubernetes-cpu-request-overwrite-max-allowed value ...
--kubernetes-memory-limit value ...
--kubernetes-memory-limit-overwrite-max-allowed value...
--kubernetes-memory-request value ...
--kubernetes-memory-request-overwrite-max-allowed val...
--kubernetes-ephemeral-storage-limit value ...
--kubernetes-ephemeral-storage-limit-overwrite-max-al...
--kubernetes-ephemeral-storage-request value ...
--kubernetes-ephemeral-storage-request-overwrite-max-...
--kubernetes-service-cpu-limit value ...
--kubernetes-service-cpu-limit-overwrite-max-allowed ...
--kubernetes-service-cpu-request value ...
--kubernetes-service-cpu-request-overwrite-max-allowe...
--kubernetes-service-memory-limit value ...
--kubernetes-service-memory-limit-overwrite-max-allow...
--kubernetes-service-memory-request value ...
--kubernetes-service-memory-request-overwrite-max-all...
--kubernetes-service-ephemeral_storage-limit value ...
--kubernetes-service-ephemeral_storage-limit-overwrit...
--kubernetes-service-ephemeral_storage-request value ...
--kubernetes-service-ephemeral_storage-request-overwr...
--kubernetes-helper-cpu-limit value ...
--kubernetes-helper-cpu-limit-overwrite-max-allowed v...
--kubernetes-helper-cpu-request value ...
--kubernetes-helper-cpu-request-overwrite-max-allowed...
--kubernetes-helper-memory-limit value ...
--kubernetes-helper-memory-limit-overwrite-max-allowe...
--kubernetes-helper-memory-request value ...
--kubernetes-helper-memory-request-overwrite-max-allo...
--kubernetes-helper-ephemeral_storage-limit value ...
--kubernetes-helper-ephemeral_storage-limit-overwrite...
--kubernetes-helper-ephemeral_storage-request value ...
--kubernetes-helper-ephemeral_storage-request-overwri...
--kubernetes-allowed-images value ...
--kubernetes-allowed-pull-policies value ...
--kubernetes-allowed-services value ...
--kubernetes-pull-policy value ...
--kubernetes-node-selector value ...
--kubernetes-node_selector_overwrite_allowed value ...
--kubernetes-node-tolerations value ...
--kubernetes-image-pull-secrets value ...
--kubernetes-helper-image value ...
--kubernetes-helper-image-flavor value ...
--kubernetes-terminationGracePeriodSeconds value ...
--kubernetes-pod_termination_grace_period_seconds val...
--kubernetes-cleanup_grace_period_seconds value ...
--kubernetes-poll-interval value ...
--kubernetes-poll-timeout value ...
--kubernetes-resource-availability-check-max-attempts...
--kubernetes-pod-labels value ...
--kubernetes-pod_labels_overwrite_allowed value ...
--kubernetes-scheduler-name value ...
--kubernetes-service-account value ...
--kubernetes-service_account_overwrite_allowed value ...
--kubernetes-pod-annotations value ...
--kubernetes-pod_annotations_overwrite_allowed value ...
--kubernetes-pod-security-context-fs-group value ...
--kubernetes-pod-security-context-run-as-group value ...
--kubernetes-pod-security-context-run-as-non-root val...
--kubernetes-pod-security-context-run-as-user value ...
--kubernetes-pod-security-context-supplemental-groups...
--kubernetes-pod-security-context-selinux-type value ...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-build_container_security_context-capabil...
--kubernetes-build_container_security_context-capabil...
--kubernetes-build_container_security_context-privile...
--kubernetes-build_container_security_context-run-as-...
--kubernetes-build_container_security_context-run-as-...
--kubernetes-build_container_security_context-run-as-...
--kubernetes-build_container_security_context-read-on...
--kubernetes-build_container_security_context-allow-p...
--kubernetes-build_container_security_context-selinux...
--kubernetes-build_container_security_context-proc-mo...
--kubernetes-helper_container_security_context-capabi...
--kubernetes-helper_container_security_context-capabi...
--kubernetes-helper_container_security_context-privil...
--kubernetes-helper_container_security_context-run-as...
--kubernetes-helper_container_security_context-run-as...
--kubernetes-helper_container_security_context-run-as...
--kubernetes-helper_container_security_context-read-o...
--kubernetes-helper_container_security_context-allow-...
--kubernetes-helper_container_security_context-selinu...
--kubernetes-helper_container_security_context-proc-m...
--kubernetes-service_container_security_context-capab...
--kubernetes-service_container_security_context-capab...
--kubernetes-service_container_security_context-privi...
--kubernetes-service_container_security_context-run-a...
--kubernetes-service_container_security_context-run-a...
--kubernetes-service_container_security_context-run-a...
--kubernetes-service_container_security_context-read-...
--kubernetes-service_container_security_context-allow...
--kubernetes-service_container_security_context-selin...
--kubernetes-service_container_security_context-proc-...
--kubernetes-host_aliases value ...
--kubernetes-cap-add value ...
--kubernetes-cap-drop value ...
--kubernetes-dns-policy value ...
--kubernetes-priority_class_name value ...
--custom-config-exec value ...
--custom-config-args value ...
--custom-config-exec-timeout value ...
--custom-prepare-exec value ...
--custom-prepare-args value ...
--custom-prepare-exec-timeout value ...
--custom-run-exec value ...
--custom-run-args value ...
--custom-cleanup-exec value ...
--custom-cleanup-args value ...
--custom-cleanup-exec-timeout value ...
--custom-graceful-kill-timeout value ...
--custom-force-kill-timeout value ...
上記コマンドだと、インタラクティブなのですが、コマンドラ...
gitlab-runner register --non-interactive --locked=false ...
Shell
で、参考にしたサイトは
https://e-penguiner.com/build-gitlab-runner-with-docker/
です。
実行すると、上記の場合は質問されないです。いろいろなサイ...
実行タイプはdockerを選んだほうがdocker上のGitLabに認識し...
質問結果は以下に保存されます。
/etc/gitlab-runner/config.toml
編集のために、コンテナの名前を確認します。
docker-compose ps
仮に、
gitlab-web-1
というコンテナ名でgitlabが動作していたとします。
docker exec -it gitlab-web-1 bash
cd /etc/gitlab-runner
テキストエディタのviがインストールされていないので、イン...
apt-get update
apt-get install vim
*** gitlab-runnerのサービスのインストール [#x35928ae]
gitlab-runner install --user=gitlab-runner --working-dir...
実行は、
gitlab-runner run &
です。
停止は、
gitlab-runner stop
です。
* GitLabでSpecific Runnerが表示されたあと何をするのか? [...
GitLab.comではShared Runnerは限定されますが、オンプレミス...
** Shared Runnerの設定 [#zf417668]
*** gitlab-runner registerで利用するトークンの取得 [#cca4...
GitLabのどこで、トークンを取得できるかというと、[Menu] > ...
#ref(specific_token.png)
右上の「Register an instance runner」ボタンをクリックする...
*** gitlab-runner registerでのrunner登録例 [#f8714591]
dockerのgitlab-runnerコンテナ名がroot-runner-1だった場合...
docker exec -it root-runner-1 gitlab-runner register --n...
*** 2つ目のrunnerの追加は以下のようにやってみました。 [#m...
[root@localhost gitlab]# docker exec -it gitlab-runner $...
Runtime platform arch...
Running in system-mode.
WARNING: Support for registration tokens and runner para...
Registering runner... succeeded runn...
Runner registered successfully. Feel free to start it, b...
Configuration (with the authentication token) was saved ...
[root@localhost gitlab]# docker exec -it gitlab-runner g...
Runtime platform arch...
Listing configured runners Conf...
container-runner Exec...
container-runner-2 Exec...
* CI/CDの実行 [#y5f0ee9c]
** GitLabで、runnerの実行ユーザを設定する [#v70adc24]
GitLabのrunnerの実行ユーザは設定できます。
*** Advanced configuration [#saf9d403]
https://gitlab-docs.creationline.com/runner/configuration...
設定ファイルは、それぞれのrunnerのdockerコンテナごとにあ...
設定ファイルの場所は、もしrootで実行しているならば、
/etc/gitlab-runner/config.toml
にあるし、rootでの実行ではないならば、それぞれのユーザの
~/.gitlab-runner/config.toml
にあります。
gitlab-runnerをdockerのイメージで実行している場合は、viエ...
apt-get update
apt-get install vim
[runners.docker]
のuserを設定します
gitlab-runnerのコンテナですでに以下のユーザが登録されてい...
gitlab-runner
** HelloWorld的な簡単な設定ファイル [#fe298203]
まずは、設定があっていれば必ず成功するレベルの簡単な自動...
以下の設定ファイルが簡単な設定ファイルと、紹介サイト(http...
*** シンプルな.gitlab-ci.yml [#se271657]
image: docker:20.10.15
services:
- docker:20.10.15-dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
before_script:
- docker info
test_ci:
script:
- docker pull alpine:latest
- docker run alpine:latest cat /etc/alpine-release
tags:
- tag-runner
*** .gitlab-ci.ymlの実行のさせ方 [#s4c06c19]
ブランチを作って、上記ファイルを含むマージリクエストを作...
このyamlファイルの仕様については、以下が元の記事らしいの...
** 参考記事 [#y4588152]
*** 本家 [#obca6436]
https://gitlab-docs.creationline.com/ee/ci/yaml/
*** はじめてのGitLab-CI [#y9cf4771]
https://qiita.com/yurano/items/a7804d987ccff37b1a9d
*** JHipsterでのCI/CDの記事 [#q677e359]
https://www.jhipster.tech/setting-up-ci/#what-cicd-pipeli...
* jhipsterの7.9.3のdockerfile [#o8d6f6e9]
https://hub.docker.com/layers/jhipster/jhipster/v7.9.3/im...
終了行:
* 目次 [#i097eb1f]
#contents
** JHipsterのCI/CDのページ [#x83b0348]
https://www.jhipster.tech/setting-up-ci/
** GitLabのCI/CDのページ [#ofc55fbb]
dockerで動かす際の説明
https://docs.gitlab.com/runner/install/docker.html
https://about.gitlab.com/features/continuous-integration/
** .gitlab-ci.yml ファイルとは [#e450d961]
.gitlab-ci.yml ファイルはパイプラインの構造と順序を定義し...
- GitLab Runnerを使って実行する内容。
- 特定の状況において、どのような判断をするか。例えば、処...
** .gitlab-ci.ymlのリファレンス [#h1cf516a]
https://gitlab-docs.creationline.com/ee/ci/yaml/
*** GitLabのクイックスタート [#xee0cfc6]
https://gitlab-docs.creationline.com/ee/ci/quick_start/RE...
** GitLabの設定サンプル [#dd8c86af]
https://gitlab-docs.creationline.com/ee/ci/examples/READM...
*** mavenを使った例 [#z4fd2745]
https://gitlab-docs.creationline.com/ee/ci/examples/artif...
*** spring-bootを使った例 [#pa163e7d]
https://gitlab-docs.creationline.com/ee/ci/examples/deplo...
** jhipster ci-cdをためす [#bcee8a31]
jhipster ci-cd
を実行してみる
選択枝でGitLabを選ぶ
In GitLab CI, perform the build in a docker container
となる。
y
を選ぶ
.gitlab-ci.yml
が変更になる
** .gitlab-ci.yml に追加されたコード [#z53e08e5]
追加のタスクは何もなしで進むと以下のコードが追加された
image: jhipster/jhipster:v7.9.3
cache:
key: '$CI_COMMIT_REF_NAME'
paths:
- .maven/
stages:
- check
- build
- test
- analyze
- package
- release
- deploy
before_script:
- export MAVEN_USER_HOME=`pwd`/.maven
nohttp:
stage: check
script:
- ./mvnw -ntp checkstyle:check -Dmaven.repo.local=$M...
maven-compile:
stage: build
script:
- ./mvnw -ntp compile -P-webapp -Dmaven.repo.local=$...
artifacts:
paths:
- target/classes/
- target/generated-sources/
expire_in: 1 day
maven-test:
services:
- docker:dind
variables:
# Instruct Testcontainers to use the daemon of DinD.
DOCKER_HOST: 'tcp://docker:2375'
# Improve performance with overlayfs.
DOCKER_DRIVER: overlay2
stage: test
script:
- ./mvnw -ntp verify -P-webapp -Dmaven.repo.local=$M...
artifacts:
reports:
junit:
- target/surefire-reports/TEST-*.xml
- target/failsafe-reports/TEST-*.xml
paths:
- target/surefire-reports
- target/failsafe-reports
- target/site
expire_in: 1 day
frontend-test:
stage: test
script:
- npm install
- npm test
artifacts:
reports:
junit: target/test-results/TESTS-results-jest.xml
paths:
- target/test-results
- target/jacoco
expire_in: 1 day
maven-package:
stage: package
script:
- ./mvnw -ntp verify -Pprod -DskipTests -Dmaven.repo...
artifacts:
paths:
- target/*.jar
- target/classes
expire_in: 1 day
# Uncomment the following line to use gitlabs container ...
#docker-push:
# stage: release
# variables:
# REGISTRY_URL: registry.gitlab.com
# IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SL...
# dependencies:
# - maven-package
# script:
# - ./mvnw -ntp jib:build -Pprod -Djib.to.image=$...
* GitLab Runnerは別サーバー? [#qef7020e]
もしかしてGitLabRunnerは別サーバにたてるのだろうか?
以下に構築方法を解説しているサイトがあった。
https://www.alpha.co.jp/blog/202208_01#%E3%82%AD%E3%83%A3...
* Dockerコンテナでgitlabとgitlab-runnerを構築してCI/CD [#...
https://syachiku.net/docker-gitlab-gitlab-runner/
* docker-composeに追加するコード [#cab9639f]
gitlab-runner:
image: gitlab/gitlab-runner:latest
container_name: gitlab-runner
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /root/gitlab/gitlab-runner-config:/etc/gitlab-ru...
ports:
- "8093:8093"
** 必要なディレクトリやファイルを作成 [#v7daa150]
mkdir -p /root/gitlab/gitlab-runner-config
** GitLab Runnerを使用する前に、GitLabの管理者アカウント...
*** GitLabの公式ドキュメント [#kfa9f19c]
https://docs.gitlab.com/runner/
正直、オンプレミスではどうしたらよいのか親切には書いてな...
* 日本語の解説サイト [#z19e0b20]
** GitLab Runner構築のススメ [#v2853f1d]
https://www.gitlab.jp/blog/2022/09/26/runner-summary/
画面のキャプチャとかあって、本家よりわかりやすいかもしれ...
*** 手順 [#yf300046]
- GitLab全体の基本設定のほうではなく、プロジェクトのサイ...
- Specific runnersに表示されているURL (GitLabのURLです)と...
メモしたい項目の具体的な項目名:
- Register the runner with this URL:
- And this registration token:
*** gitlab-runnerのコンテナ名の調査 [#x6580623]
docker-compose ps
起動させてあるのが、前提条件ですが、上記のコマンドで、実...
*** docker-imageへのログイン [#c23330d0]
docker exec -it 上記手順で調べたドッカーコンテナ名 bash
*** 登録コマンドの実行 [#rfc64fc7]
コマンドを実行する前に、どのようなコマンドがあるのか確認...
gitlab-runner --help
*** gitlab-runner-2というコンテナ名で、helpオプションを実...
# docker exec -it gitlab-runner-2 gitlab-runner --help
NAME:
gitlab-runner - a GitLab Runner
USAGE:
gitlab-runner [global options] command [command optio...
VERSION:
15.10.1 (dcfb4b66)
AUTHOR:
GitLab Inc. <support@gitlab.com>
COMMANDS:
exec execute a build locally
list List all configured runners
run run multi runner service
register register a new runner
reset-token reset a runner's token
install install service
uninstall uninstall service
start start service
stop stop service
restart restart service
status get status of a service
run-single start single runner
unregister unregister specific runner
verify verify all registered runners
artifacts-downloader download and extract build arti...
artifacts-uploader create and upload build artifac...
cache-archiver create and upload cache artifac...
cache-extractor download and extract cache arti...
cache-init changed permissions for cache p...
health-check check health for a specific add...
read-logs reads job logs from a file, use...
help, h Shows a list of commands or hel...
GLOBAL OPTIONS:
--cpuprofile value write cpu profile to fil...
--debug debug mode [$RUNNER_DEBUG]
--log-format value Choose log format (optio...
--log-level value, -l value Log level (options: debu...
--help, -h show help
--version, -v print the version
登録に実行するコマンドは、以下のコマンドですが、、
gitlab-runner register
** gitlab-runner registerのオプションの量がやばい量ある件...
[root@localhost gitlab]# docker exec -it gitlab-runner-2...
Runtime platform arch...
NAME:
gitlab-runner register - register a new runner
USAGE:
gitlab-runner register [command options] [arguments...]
OPTIONS:
-c value, --config value ...
--template-config value ...
--tag-list value ...
-n, --non-interactive ...
--leave-runner ...
-r value, --registration-token value ...
--run-untagged ...
--locked ...
--access-level value ...
--maximum-timeout value ...
--paused ...
--maintenance-note value ...
--name value, --description value ...
--limit value ...
--output-limit value ...
--request-concurrency value ...
--unhealthy-requests-limit value ...
--unhealthy-interval value ...
-u value, --url value ...
-t value, --token value ...
--tls-ca-file value ...
--tls-cert-file value ...
--tls-key-file value ...
--executor value ...
--builds-dir value ...
--cache-dir value ...
--clone-url value ...
--env value ...
--pre-clone-script value ...
--post-clone-script value ...
--pre-get-sources-script value ...
--post-get-sources-script value ...
--pre-build-script value ...
--post-build-script value ...
--debug-trace-disabled ...
--shell value ...
--custom_build_dir-enabled ...
--cache-type value ...
--cache-path value ...
--cache-shared ...
--cache-max_uploaded_archive_size value ...
--cache-s3-server-address value ...
--cache-s3-access-key value ...
--cache-s3-secret-key value ...
--cache-s3-bucket-name value ...
--cache-s3-bucket-location value ...
--cache-s3-insecure ...
--cache-s3-authentication_type value ...
--cache-s3-server-side-encryption value ...
--cache-s3-server-side-encryption-key-id value ...
--cache-gcs-access-id value ...
--cache-gcs-private-key value ...
--cache-gcs-credentials-file value ...
--cache-gcs-bucket-name value ...
--cache-azure-account-name value ...
--cache-azure-account-key value ...
--cache-azure-container-name value ...
--cache-azure-storage-domain value ...
--feature-flags value ...
--ssh-user value ...
--ssh-password value ...
--ssh-host value ...
--ssh-port value ...
--ssh-identity-file value ...
--ssh-disable-strict-host-key-checking value ...
--ssh-known-hosts-file value ...
--docker-host value ...
--docker-cert-path value ...
--docker-tlsverify ...
--docker-hostname value ...
--docker-image value ...
--docker-runtime value ...
--docker-memory value ...
--docker-memory-swap value ...
--docker-memory-reservation value ...
--docker-cpuset-cpus value ...
--docker-cpus value ...
--docker-cpu-shares value ...
--docker-dns value ...
--docker-dns-search value ...
--docker-privileged ...
--docker-services_privileged value ...
--docker-disable-entrypoint-overwrite ...
--docker-user value ...
--docker-userns value ...
--docker-cap-add value ...
--docker-cap-drop value ...
--docker-oom-kill-disable ...
--docker-oom-score-adjust value ...
--docker-security-opt value ...
--docker-services-security-opt value ...
--docker-devices value, --omitempty value ...
--docker-device-cgroup-rules value ...
--docker-gpus value ...
--docker-disable-cache ...
--docker-volumes value ...
--docker-volume-driver value ...
--docker-volume-driver-ops value ...
--docker-cache-dir value ...
--docker-extra-hosts value ...
--docker-volumes-from value ...
--docker-network-mode value ...
--docker-ipcmode value ...
--docker-mac-address value ...
--docker-links value ...
--docker-wait-for-services-timeout value ...
--docker-allowed-images value ...
--docker-allowed-pull-policies value ...
--docker-allowed-services value ...
--docker-pull-policy value ...
--docker-isolation value ...
--docker-shm-size value ...
--docker-tmpfs value ...
--docker-services-tmpfs value ...
--docker-sysctls value ...
--docker-helper-image value ...
--docker-helper-image-flavor value ...
--docker-container-labels value ...
--docker-enable-ipv6 ...
--parallels-base-name value ...
--parallels-template-name value ...
--parallels-disable-snapshots ...
--parallels-time-server value ...
--parallels-allowed-images value ...
--virtualbox-base-name value ...
--virtualbox-base-snapshot value ...
--virtualbox-base-folder value ...
--virtualbox-disable-snapshots ...
--virtualbox-allowed-images value ...
--virtualbox-start-type value ...
--machine-max-growth-rate value ...
--machine-idle-nodes value ...
--machine-idle-scale-factor value ...
--machine-idle-count-min value ...
--machine-idle-time value ...
--machine-max-builds value ...
--machine-machine-driver value ...
--machine-machine-name value ...
--machine-machine-options value ...
--kubernetes-host value ...
--kubernetes-cert-file value ...
--kubernetes-key-file value ...
--kubernetes-ca-file value ...
--kubernetes-bearer_token_overwrite_allowed ...
--kubernetes-bearer_token value ...
--kubernetes-image value ...
--kubernetes-namespace value ...
--kubernetes-namespace_overwrite_allowed value ...
--kubernetes-privileged value ...
--kubernetes-runtime-class-name value ...
--kubernetes-allow-privilege-escalation value ...
--kubernetes-cpu-limit value ...
--kubernetes-cpu-limit-overwrite-max-allowed value ...
--kubernetes-cpu-request value ...
--kubernetes-cpu-request-overwrite-max-allowed value ...
--kubernetes-memory-limit value ...
--kubernetes-memory-limit-overwrite-max-allowed value...
--kubernetes-memory-request value ...
--kubernetes-memory-request-overwrite-max-allowed val...
--kubernetes-ephemeral-storage-limit value ...
--kubernetes-ephemeral-storage-limit-overwrite-max-al...
--kubernetes-ephemeral-storage-request value ...
--kubernetes-ephemeral-storage-request-overwrite-max-...
--kubernetes-service-cpu-limit value ...
--kubernetes-service-cpu-limit-overwrite-max-allowed ...
--kubernetes-service-cpu-request value ...
--kubernetes-service-cpu-request-overwrite-max-allowe...
--kubernetes-service-memory-limit value ...
--kubernetes-service-memory-limit-overwrite-max-allow...
--kubernetes-service-memory-request value ...
--kubernetes-service-memory-request-overwrite-max-all...
--kubernetes-service-ephemeral_storage-limit value ...
--kubernetes-service-ephemeral_storage-limit-overwrit...
--kubernetes-service-ephemeral_storage-request value ...
--kubernetes-service-ephemeral_storage-request-overwr...
--kubernetes-helper-cpu-limit value ...
--kubernetes-helper-cpu-limit-overwrite-max-allowed v...
--kubernetes-helper-cpu-request value ...
--kubernetes-helper-cpu-request-overwrite-max-allowed...
--kubernetes-helper-memory-limit value ...
--kubernetes-helper-memory-limit-overwrite-max-allowe...
--kubernetes-helper-memory-request value ...
--kubernetes-helper-memory-request-overwrite-max-allo...
--kubernetes-helper-ephemeral_storage-limit value ...
--kubernetes-helper-ephemeral_storage-limit-overwrite...
--kubernetes-helper-ephemeral_storage-request value ...
--kubernetes-helper-ephemeral_storage-request-overwri...
--kubernetes-allowed-images value ...
--kubernetes-allowed-pull-policies value ...
--kubernetes-allowed-services value ...
--kubernetes-pull-policy value ...
--kubernetes-node-selector value ...
--kubernetes-node_selector_overwrite_allowed value ...
--kubernetes-node-tolerations value ...
--kubernetes-image-pull-secrets value ...
--kubernetes-helper-image value ...
--kubernetes-helper-image-flavor value ...
--kubernetes-terminationGracePeriodSeconds value ...
--kubernetes-pod_termination_grace_period_seconds val...
--kubernetes-cleanup_grace_period_seconds value ...
--kubernetes-poll-interval value ...
--kubernetes-poll-timeout value ...
--kubernetes-resource-availability-check-max-attempts...
--kubernetes-pod-labels value ...
--kubernetes-pod_labels_overwrite_allowed value ...
--kubernetes-scheduler-name value ...
--kubernetes-service-account value ...
--kubernetes-service_account_overwrite_allowed value ...
--kubernetes-pod-annotations value ...
--kubernetes-pod_annotations_overwrite_allowed value ...
--kubernetes-pod-security-context-fs-group value ...
--kubernetes-pod-security-context-run-as-group value ...
--kubernetes-pod-security-context-run-as-non-root val...
--kubernetes-pod-security-context-run-as-user value ...
--kubernetes-pod-security-context-supplemental-groups...
--kubernetes-pod-security-context-selinux-type value ...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-init_permissions_container_security_cont...
--kubernetes-build_container_security_context-capabil...
--kubernetes-build_container_security_context-capabil...
--kubernetes-build_container_security_context-privile...
--kubernetes-build_container_security_context-run-as-...
--kubernetes-build_container_security_context-run-as-...
--kubernetes-build_container_security_context-run-as-...
--kubernetes-build_container_security_context-read-on...
--kubernetes-build_container_security_context-allow-p...
--kubernetes-build_container_security_context-selinux...
--kubernetes-build_container_security_context-proc-mo...
--kubernetes-helper_container_security_context-capabi...
--kubernetes-helper_container_security_context-capabi...
--kubernetes-helper_container_security_context-privil...
--kubernetes-helper_container_security_context-run-as...
--kubernetes-helper_container_security_context-run-as...
--kubernetes-helper_container_security_context-run-as...
--kubernetes-helper_container_security_context-read-o...
--kubernetes-helper_container_security_context-allow-...
--kubernetes-helper_container_security_context-selinu...
--kubernetes-helper_container_security_context-proc-m...
--kubernetes-service_container_security_context-capab...
--kubernetes-service_container_security_context-capab...
--kubernetes-service_container_security_context-privi...
--kubernetes-service_container_security_context-run-a...
--kubernetes-service_container_security_context-run-a...
--kubernetes-service_container_security_context-run-a...
--kubernetes-service_container_security_context-read-...
--kubernetes-service_container_security_context-allow...
--kubernetes-service_container_security_context-selin...
--kubernetes-service_container_security_context-proc-...
--kubernetes-host_aliases value ...
--kubernetes-cap-add value ...
--kubernetes-cap-drop value ...
--kubernetes-dns-policy value ...
--kubernetes-priority_class_name value ...
--custom-config-exec value ...
--custom-config-args value ...
--custom-config-exec-timeout value ...
--custom-prepare-exec value ...
--custom-prepare-args value ...
--custom-prepare-exec-timeout value ...
--custom-run-exec value ...
--custom-run-args value ...
--custom-cleanup-exec value ...
--custom-cleanup-args value ...
--custom-cleanup-exec-timeout value ...
--custom-graceful-kill-timeout value ...
--custom-force-kill-timeout value ...
上記コマンドだと、インタラクティブなのですが、コマンドラ...
gitlab-runner register --non-interactive --locked=false ...
Shell
で、参考にしたサイトは
https://e-penguiner.com/build-gitlab-runner-with-docker/
です。
実行すると、上記の場合は質問されないです。いろいろなサイ...
実行タイプはdockerを選んだほうがdocker上のGitLabに認識し...
質問結果は以下に保存されます。
/etc/gitlab-runner/config.toml
編集のために、コンテナの名前を確認します。
docker-compose ps
仮に、
gitlab-web-1
というコンテナ名でgitlabが動作していたとします。
docker exec -it gitlab-web-1 bash
cd /etc/gitlab-runner
テキストエディタのviがインストールされていないので、イン...
apt-get update
apt-get install vim
*** gitlab-runnerのサービスのインストール [#x35928ae]
gitlab-runner install --user=gitlab-runner --working-dir...
実行は、
gitlab-runner run &
です。
停止は、
gitlab-runner stop
です。
* GitLabでSpecific Runnerが表示されたあと何をするのか? [...
GitLab.comではShared Runnerは限定されますが、オンプレミス...
** Shared Runnerの設定 [#zf417668]
*** gitlab-runner registerで利用するトークンの取得 [#cca4...
GitLabのどこで、トークンを取得できるかというと、[Menu] > ...
#ref(specific_token.png)
右上の「Register an instance runner」ボタンをクリックする...
*** gitlab-runner registerでのrunner登録例 [#f8714591]
dockerのgitlab-runnerコンテナ名がroot-runner-1だった場合...
docker exec -it root-runner-1 gitlab-runner register --n...
*** 2つ目のrunnerの追加は以下のようにやってみました。 [#m...
[root@localhost gitlab]# docker exec -it gitlab-runner $...
Runtime platform arch...
Running in system-mode.
WARNING: Support for registration tokens and runner para...
Registering runner... succeeded runn...
Runner registered successfully. Feel free to start it, b...
Configuration (with the authentication token) was saved ...
[root@localhost gitlab]# docker exec -it gitlab-runner g...
Runtime platform arch...
Listing configured runners Conf...
container-runner Exec...
container-runner-2 Exec...
* CI/CDの実行 [#y5f0ee9c]
** GitLabで、runnerの実行ユーザを設定する [#v70adc24]
GitLabのrunnerの実行ユーザは設定できます。
*** Advanced configuration [#saf9d403]
https://gitlab-docs.creationline.com/runner/configuration...
設定ファイルは、それぞれのrunnerのdockerコンテナごとにあ...
設定ファイルの場所は、もしrootで実行しているならば、
/etc/gitlab-runner/config.toml
にあるし、rootでの実行ではないならば、それぞれのユーザの
~/.gitlab-runner/config.toml
にあります。
gitlab-runnerをdockerのイメージで実行している場合は、viエ...
apt-get update
apt-get install vim
[runners.docker]
のuserを設定します
gitlab-runnerのコンテナですでに以下のユーザが登録されてい...
gitlab-runner
** HelloWorld的な簡単な設定ファイル [#fe298203]
まずは、設定があっていれば必ず成功するレベルの簡単な自動...
以下の設定ファイルが簡単な設定ファイルと、紹介サイト(http...
*** シンプルな.gitlab-ci.yml [#se271657]
image: docker:20.10.15
services:
- docker:20.10.15-dind
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
before_script:
- docker info
test_ci:
script:
- docker pull alpine:latest
- docker run alpine:latest cat /etc/alpine-release
tags:
- tag-runner
*** .gitlab-ci.ymlの実行のさせ方 [#s4c06c19]
ブランチを作って、上記ファイルを含むマージリクエストを作...
このyamlファイルの仕様については、以下が元の記事らしいの...
** 参考記事 [#y4588152]
*** 本家 [#obca6436]
https://gitlab-docs.creationline.com/ee/ci/yaml/
*** はじめてのGitLab-CI [#y9cf4771]
https://qiita.com/yurano/items/a7804d987ccff37b1a9d
*** JHipsterでのCI/CDの記事 [#q677e359]
https://www.jhipster.tech/setting-up-ci/#what-cicd-pipeli...
* jhipsterの7.9.3のdockerfile [#o8d6f6e9]
https://hub.docker.com/layers/jhipster/jhipster/v7.9.3/im...
ページ名: