gitlab CI docker 在 2 分钟后停止
不同存储库中的轻微代码更改和相同的错误。Ci/CD 曾经用于处理这些存储库?
...
Step 4/11 : RUN yarn install
---> Using cache
---> c75197e0dbaa
Step 5/11 : COPY babel.config.js babel.config.js
---> Using cache
---> 482b1ff64322
Step 6/11 : COPY src src
---> d530de056b88
Step 7/11 : RUN mkdir locales
---> Running in f7885ea9a3c3
...
Run Code Online (Sandbox Code Playgroud)
链接到 GL 问题 https://gitlab.com/gitlab-com/support-forum/issues/5202
我是 gitlab ci 的新手,我有一个预先存在的 gitlab 配置的项目,该配置运行良好,但在推送了一些代码更改后,它现在完全停止工作,我不知道为什么。这里是.gitlab-ci.yml
stages:
- build
- deploy
variables:
DOCKER_HOST: tcp://localhost:2375
assets:
stage: build
image: node:10-alpine
script:
- npm ci
- NODE_ENV=production npm run build
artifacts:
expire_in: 1 day
paths:
- public/assets
tags:
- docker
package:
stage: deploy
image: php:7.3-cli-alpine
dependencies:
- assets
before_script:
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
- php composer-setup.php --install-dir=/usr/local/bin --filename=composer …Run Code Online (Sandbox Code Playgroud) 我设置了新的 gitlab docker ,然后设置了一个基于 microsoft/dotnet:latest 的带有 docer 执行器的 runner docker,然后我向 gitlab 添加了一个简单的项目,只是一个 dotnet core hello world 然后我创建了一个 ci 文件,如下所示:
image: microsoft/dotnet:latest
stages:
- build
variables:
project: "ConsoleApp"
before_script:
- "dotnet restore"
build:
stage: build
variables:
build_path: "$ConsoleApp"
script:
- "cd $build_path"
- "dotnet build"
Run Code Online (Sandbox Code Playgroud)
然后在管道中我得到这个输出:
Preparing environment
Running on runner-vtysysr-project-2-concurrent-0 via e189cc9d1c60...
Getting source from Git repository
00:07
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /builds/root/gitlabcitest/.git/
fatal: couldn't find remote ref refs/pipelines/18
Uploading artifacts …Run Code Online (Sandbox Code Playgroud) 无论我做什么,我的 gitlab-runner 服务都没有运行。我以前和以前更新时都遇到过同样的问题,它曾经开始运行,但现在根本没有启动。
我已经卸载然后重新安装它仍然是一样的。我想我没有完全卸载/删除。如何完全卸载 gitlab runner 或如何启动服务?
我也没有得到 gitlab-runner 的主目录。当我说 gitlab-runner list 时,我会得到以下配置详细信息。
ConfigFile=/home/rohith/.gitlab-runner/config.toml
Run Code Online (Sandbox Code Playgroud)
但我尝试 cd 到 gitlab-runner 用户目录我根本找不到目录。
我正在使用npm在我的项目中安装 Node.js 依赖项。我想在node_modules全局缓存 Node.js 包 ( ) 以在部署到 Heroku 时加速管道中的作业。GitLab官方文档中的一个示例:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- .npm/
before_script:
- npm ci --cache .npm --prefer-offline
Run Code Online (Sandbox Code Playgroud)
这是GitLab 中的另一个示例:
cache:
paths:
- node_modules/
Run Code Online (Sandbox Code Playgroud)
发现了一些文章(部署Node.js的应用程序与GitLab CI / CD,持续集成用的Node.js,Heroku的和GitLab CI / CD第2部分),该使用上述的第二构型。我确实试了一下,我能够使用这些设置成功地将我的应用程序部署到 Heroku。但我不确定缓存机制是否正常工作。
这些配置有什么区别?哪一种是最方便的缓存 Node.js 包的方法?
我当前的gitlab-ci.yml文件设置:
image: node:latest
cache:
paths:
- node_modules/
stages:
- build
- deploy
build:
stage: build
script:
- npm i
- npm i -g gulp-cli
- gulp …Run Code Online (Sandbox Code Playgroud) 构建时,我需要在 gitlab-ci.yml 中上次推送的 git commit 的标签值。在构建过程中,我构建了一个 docker 镜像,在构建之后,我想推送这些镜像,其标签与我的 git commit 相同。到目前为止,我的理解是环境变量$CI_COMMIT_TAG应该完成这项工作。然而,当我$CI_COMMIT_TAG在 gitlab-ci.yml 中回显时,它只是空的。
这是我的 gitlab-ci.yml:
stages:
- build
build-dev:
stage: build
environment: development
only:
- master
tags:
- ms-doorman
script:
- echo $CI_COMMIT_TAG
Run Code Online (Sandbox Code Playgroud)
这里是启动作业的 git 命令。
$ git commit -am "test git tags"
$ git tag test-tag
$ git push --tags origin master
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试通过 dockerising 来部署我的 NodeJS API 并将其放到 EC2 上,但是我已经因为这个错误走到了死胡同: load pubkey "/root/.ssh/id_rsa": invalid format
我尝试过的事情
apt-get install openssl-client在 docker 中使用和转换私有 RSA 密钥(但显然我丢失了,apt-get所以我也尝试过apk这也不起作用......????)可疑的:
pubkey,但所有教程都指出使用我的pem密钥,该密钥是从我的 EC2 设置中生成的。所以也许我错过了一个pubkey?但我找不到任何材料另有说明。gitlab-ci.yml
image: docker:19.03.12
variables:
DOCKER_TLS_CERTDIR: "/certs"
DOCKER_DRIVER: overlay2
services:
- docker:19.03.0-dind
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
stages:
- build
- deploy
build:
stage: build
script:
# - docker build --tag $CI_REGISTRY/$CI_PROJECT_PATH:latest .
# - …Run Code Online (Sandbox Code Playgroud) 我有一个 gitlab 管道,其中有两个阶段,一个是构建,另一个是部署。构建阶段在进行提交时运行。我想要一种在合并请求合并到 master 时运行部署作业的方法。我尝试了几件事,但没有运气。任何人都可以帮忙吗?
stages:
- build
- deploy
dotnet:
script: "echo This builds!"
stage: build
production:
script: "echo This deploys!"
stage: deploy
only:
refs:
- master
Run Code Online (Sandbox Code Playgroud) 我的 GitLab 管道在每次推送时自动执行,我想手动运行管道而不是每次推送。
管道文档:https : //docs.gitlab.com/ee/ci/yaml/#workflowrules
我在.gitlab-ci.yml 中试过这个
workflow:
rules:
- when: manual # Error: workflow:rules:rule when unknown value: manual
Run Code Online (Sandbox Code Playgroud) 当我在自己的跑步者“myrunner”上运行这个 Gitlab CI 作业时
test:
tags:
- myrunner
image: docker:latest
stage: build
services:
- docker:dind
script:
- echo "It works!"
rules:
- when: always
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
Preparing the "docker" executor
Using Docker executor with image docker:latest ...
Starting service docker:dind ...
Pulling docker image docker:dind ...
ERROR: Preparation failed: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit (docker.go:142:1s)
Will be retried in 3s ...
Run Code Online (Sandbox Code Playgroud)
我怎样才能拉动图像之前认证DIND:泊坞窗,以避免对拉速率限制 …
gitlab-ci-runner ×10
gitlab-ci ×8
gitlab ×6
docker ×4
amazon-ec2 ×1
dockerhub ×1
gitlab-api ×1
node.js ×1
npm ×1
runner ×1
ssh ×1