私はGitlab CI上で、当社のJavaプロジェクトを設定しようとしてかなりの時間を費やしました。ある程度の成功を収めています。 rolveが述べたように、最も単純な解決策は、公式レポからの画像を使用することです。https://hub.docker.com/_/maven
しかし、プロジェクトの依存関係を取得するときに私のビルドがタイムアウト要求を受ける原因となったプロキシがあります。私は多くのソリューションを試して、最終的にこの投稿に出くわしました:https://gitlab.com/gitlab-org/gitlab-ce/issues/15167。
投稿自体は、ダウンロードされた依存関係をビルド間でアクセスできるローカルリポジトリにキャッシュするよう設定しています。あなたのキャッシュディレクトリとあなたのプロキシを設定するには、.gitlab-ci.ymlでローカルMaven設定ファイルを書くことができます。
before_script:
-echo '<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>/cache/.m2</localRepository>
<proxies>
<proxy>
<active>true</active>
<protocol>'$PROXY_PROTOCOL'</protocol>
<host>'$PROXY_HOST'</host>
<port>'$PROXY_PORT'</port>
</proxy>
</proxies>
</settings>' > $HOME/.m2/settings.xml
build_debug1:
stage: build
script: "echo $PROXY_HOST"
build_debug2:
stage: build
script: "cat $HOME/.m2/settings.xml"
build_maven:
stage: build
script: "mvn $MAVEN_CLI_OPTS package"
artifacts:
paths:
- target/*.jar
deploy_debug1:
stage: package
script: "ls target/"
ビルドデバッグジョブは、プロキシ設定が正しく注入されているかどうかのみを確認することに注意してください。 Project - > Settings - > CI/CD Pipelines - > Secret Variablesに移動して、Gitlabを使ってプロキシ環境変数を秘密として設定することができます。
最後のdeploy_debug
ジョブは、ターゲットディレクトリに生成されたものを表示することです。
ランナーを登録しているときにシェル、ssh、ドッカーを実行するかどうか尋ねられたら、ドッカーを正しく選択する必要がありますか? – MRK187
Thx、チャームのように機能します!ちょうど質問です: '.gitlab-ci.yml'ファイルに画像を指定すると、' gitlab-runner'の作成中に指定された画像は無視されますか?例えばimage * ubuntu:latest *を使ってランナーを作って、ymlファイル内の* maven:3-jdk-7 *を使ってジョブを実行してください。 – PierreF
@jeanMarcAssinこのセクションに関するドキュメンテーションは少し疎ですが、このセクションはhttp:// docです。 gitlab.com/ce/ci/docker/using_docker_images.html#overwrite-image-and-services以下の2つは、 '.gitlab-ci.yml'ファイルで指定したイメージが、イメージをランナーに上書きすることを示唆していますで構成されています。 – rolve