我在其中安装了ubuntu 18.04服务器Gitlab-EE。我可以访问跑步者和许多其他东西。我想使用GitLab设置CI / CD。 因此,让我们开始吧:
错误:
我的gitlab-ci.yml
image: docker:latest
services:
- docker:dind
stages:
- build
- deploy
build:
image: node:latest
stage: build
tags:
- api
before_script:
- apt-get update -qq
- apt-get install -y
script:
- npm install
deploy:
services:
- node:latest
image: node:latest
stage: deploy
tags:
- api
script:
- sudo apt install python-pip
- sudo pip install docker-compose
- npm run dc:up ( this makes docker-composer build )
构建阶段成功完成 部署阶段出错。
我的Gitlab Runner:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Api-Runner"
url = "XX"
token = "XXX"
executor = "docker"
[runners.docker]
tls_verify = false
image = "node:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
我想安装docker-composer来运行我的项目。 如果删除“ sudo”命令,输出将如下所示
答案 0 :(得分:0)
看起来您正在使用的图像(node:latest
)不包含命令sudo
。看起来它也默认为root
用户,因此也许您可以完全避免使用sudo
?
您可以通过从以下图像启动自己的容器来探索将在其中运行作业的环境/容器:docker run --rm -ti node:latest bash
如果您可以使用类似的容器手动进行处理,则可以在gitlab-ci.yml
文件中使用该配方。
但是,请特别注意,gitlab将为每个作业启动一个新容器,因此您可能还希望将apt-get update -qq
添加到您的deploy
作业中。