問題タブ [gitlab-ci-runner]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Gitlab docker executor - before_script の後にイメージをキャッシュする
ファイルには、実際のスクリプトが実行される前にコマンドを実行するgitlab-ci
オプションがあり、. ここでは、補助プログラムのインストール例を示します。ただし、docker executor を使用すると、これらの変更が Docker にキャッシュされないことに気付きました。これらのコマンドを実行した後、docker はイメージをキャッシュするので、次の実行またはテストでは、docker は. これにより、ビルドが大幅に高速化されます。.gitlab-ci.yml
before_script
.gitlab-ci.yml
before_script
例として、私の.gitlab-ci.yml
見た目は次のようになります。
考えられる解決策は、ランナー マシンに移動し、他のインストールなしでソフトウェアをビルドできる Docker イメージを作成しimage
、yaml ファイルのセクションでそれを参照することです。これの欠点は、依存関係を追加するたびに、ビルドが成功する前にランナー マシンにログインしてイメージを更新する必要があることです。の最後に依存関係を追加し、apt-get install
docker / gitlab-ci に適切なキャッシュを処理させるだけでよければ、はるかに良いでしょう。
に設定しようとした にもcache
コマンドがあります。これは、プロジェクトの副産物ではないすべてのものをキャッシュすると思っていましたが、何の効果もないようでした。.gitlab-ci.yml
untracked: true
私が望む動作を取得する方法はありますか?
gitlab - Gitlab CI は永久に実行されます
Gitlab CE を最新バージョンの 8.3.4 に更新しました。アップグレード前、私の Gitlab CI は正常に動作していました。
アップグレード後、Gitlab CI は新しいビルドをトリガーしますが、最初はハングします。Gitlab CI ランナーをアップグレードした後、ビルドは開始されますが、再びハングします。コンソールに出力が表示されません。
ランナーの ~/builds フォルダーを確認すると、実行直前にビルドがハングしていることに気付きますgrunt
。
ここに私の .gitlab-ci.yml ファイルがあります:
これをデバッグする方法について何かヒントはありますか? application.log、production.log、または sidekiq.log に関連するログがありません。
gitlab-ci - Gitlab CI でビルドを実行するために使用された Docker コンテナーを保存するにはどうすればよいですか?
Docker を使用するランナーと組み合わせて Gitlab CI を使用しています。Gitlab のプロジェクトの git リポジトリに、.gitlab-ci.yml ファイルを配置しました。このファイルをプッシュすると、ランナーは提供した Docker イメージに基づいて Docker コンテナーを作成します。次に、yml ファイルに記述されたビルド手順を実行します。ビルドが成功すると、これは非常にうまく機能します。
ただし、ビルドが失敗した場合、このビルドを実行するために使用された Docker コンテナーで原因を見つけられるようにしたいと考えています。これは可能ですか?
「docker ps」の出力は、ビルド中にコンテナーが実行されていることを示していますが、その後の「docker ps -a」の出力は、コンテナーが完全に削除されたことを示しています。これを防ぐ方法はありますか?
gitlab - シェルランナーが指定されている間、GitLab CIはdockerを使用し続けます
編集:構成ファイルを変更して試行錯誤を続けた後、最終的にGitLabランナーをパージして再インストールすることにしました。再インストールして登録すると、すべて正常に動作します。
コードが GitLab リポジトリにプッシュされるたびに自動デプロイを作成しようとしました。展開では、リポジトリ ファイルがクリーンアップされてから にコピーされ/var/www
ます。これらの登録を使用して、サーバーにランナーをセットアップしました。
したがって、ビルドはホストサーバーで直接実行されると想定しています。
tomlファイルは次のとおりです。
ただし、gitlab からの結果のビルド ログは、ビルドの実行にまだ docker を使用していることを示しています。
- ホスト環境でローカルにビルドを実行するにはどうすればよいですか?
- リポジトリのファイルを別のディレクトリにコピーするだけで、GitLab CI を使用して継続的な展開を行う方法はありますか?
私は現在 GitLab CI Runner について学んでいるので、webhook を提案しないでください。
ありがとう。
javascript - JavaScript を使用したバニラ HTML ページでの GitLab 変数の使用
GitLab は、定義済みの環境変数、YAML 定義の変数、およびセキュア ユーザー変数をサポートしています - http://doc.gitlab.com/ce/ci/variables/README.html
基本的な GitLab-Pages サイト内で JavaScript スクリプトの一部としてセキュアなユーザー変数を使用するにはどうすればよいですか? (つまり、サイトは ruby、node などを使用しておらず、html、css、および javascript のみを使用しています)
たとえば、このプロジェクトには START_PAGE_USER 変数と START_PAGE_ID 変数が定義されています。私の .gitlab-ci.ymlecho $START_PAGE_USER
は&を介してそれらを公開し、ビルドログで公開echo $START_PAGE_ID
されていることを確認しました。これらの変数を JavaScript で使用するにはどうすればよいですか (たとえば、config.jsでユーザー名を設定するなど):
spring-boot - GitLab ランナーを使用してサービスを開始し、停止しないようにする方法は?
GitLab CI サーバーを使用して単純な Spring Boot アプリケーションをデプロイします。私の.gitlab-ci.yml
は次のとおりです。
そして、deploy
ステージは次の出力を生成します。
ただし、ランナーがステージを終了するとサービスが停止したため、アプリケーションをロードできません。
私のサービス スクリプトは、実際の作業をアセンブルされたwar
パッケージに委任します。
さらに、手動でサービスを開始した場合 ( service gitlab-runner-test start
)、ユーザー セッションが閉じられた後もサービスが実行されたままになります。
よくわかりませんが、問題の根本は何ですか?Spring Boot 起動スクリプト、GitLab 構成、サービス スクリプト、またはその他のものですか?
GitLab CI マルチランナー バージョン 0.5.0 (c38415a) で Ubuntu 14.04 を実行しています。
更新:
ランナーをバージョン 1.0.1 (cffb5c7) にアップグレードしても問題は解決しません。
gitlab-ci - gitlab-ci ステージに関する問題
自動 RPM ビルドのセットアップに取り組んでおり、ビルド手順に進む前に SPEC ファイルで簡単なテストを実行したいと考えています。私が抱えている問題は、ジョブが常に展開段階にジャンプしているように見えることです。これは、私の .gitlab-ci.yml からの関連するスニペットです。
これを適切に説明するための質問やオンラインドキュメントが見つからないので、助けていただければ幸いです。
docker - gitlab-ci-runner DinD イメージに中間イメージをキャッシュさせるにはどうすればよいですか?
巨大で時間がかかる texlive-full パッケージのインストールから始まる Dockerfile があります。ローカルで実行docker build
すると、インストール後に作成された中間イメージがキャッシュされ、その後のビルドが高速になります。
ただし、自分の GitLab インストールにプッシュして GitLab-CI ビルド ランナーが開始すると、これは常に最初から開始され、FROM
イメージを再ダウンロードして、apt-get インストールを再度実行するように見えます。これは私にとって大きな無駄のように思えるので、GitLab DinD イメージを取得してビルド間の中間イメージをキャッシュする方法を見つけようとしていますが、これまでのところ運が悪いです。
コマンドに--cache-dir
and--docker-cache-dir
を使用しようとしましたが、役に立ちませんでした。gitlab-runner register
これは、gitlab-runner DinD イメージでできるはずのことでもありますか?
私の.gitlab-ci.yml
:
私のDockerfile
:
私はGitLab CE 8.4.0とgitlab/gitlab-runner:latestをランナーとして使用し、次のように開始しました
ランナーは以下を使用して登録されます。
これにより、次が作成されますconfig.toml
。
cache_dir
(私は、 、docker_cache_dir
およびの異なる値を試しましたがdisable_cache
、すべて同じ結果になりました:キャッシュはまったくありません)