作者:pea101 | 来源:互联网 | 2023-02-02 19:01
我正在使用gitlab-ci docker:dind
作为服务。
问题
我正在尝试在Gitlab-CI中运行,npm run build
然后运行docker build
。
我可以通过以下方式在docker中使用docker进行构建:
这是我的跑步者config.toml
:
$ cat /etc/gitlab-runner/config.toml
cOncurrent= 4
check_interval = 0
[[runners]]
name = "developers_gitlab_school-gitlab-runner-docker"
url = "https://school.domain.com"
token = "cd09f40c6a4....a44751fec795e35"
executor = "docker"
builds_dir = "/mnt/mesos/sandbox/builds"
cache_dir = "/mnt/mesos/sandbox/cache"
[runners.docker]
tls_verify = false
image = "docker:latest"
privileged = true
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
这是一个例子 .gitlab-ci.yml
image: docker:latest
# image: mcasimir/dind-node-build-runner:latest
variables:
DOCKER_DRIVER: overlay2
services:
- docker:dind
before_script:
- docker info
- docker --version
- docker login -u ${REGISTRY_USERNAME} -p ${REGISTRY_PASSWORD} ${REGISTRY_URL}
stages:
- build
# Job: Build
build_dev:
stage: build
script:
- docker build -t group/mail-server/dev:${CI_JOB_ID} .
only:
- dev
tags:
- docker
build_master:
stage: build
script:
- docker build -t domain/mail-server:${CI_JOB_ID} .
- docker build -t domain/mail-server:latest .
only:
- master
tags:
- docker
当我使用带有docker和npm的映像进行构建mcasimir / dind-node-build-runner:latest时,
我有:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
当我使用image时docker:latest
,docker-in-docker 工作正常,但我仍然需要npm。
题:
因为的Dockerfile docker:latest
不是公开的,并且由于我无法apt-get
从该映像使用,所以我想知道:
如果有办法有一个可运行的图像码头工人和NPM在gitlab慈?
Robert..
5
因为它是基于高山的图像,所以您没有apt-get,而是拥有apk
。因此,使用默认值docker:latest
只需添加以下内容apk --update add nodejs
:
before_script:
- apk --update add nodejs
您已经准备好使用dind和nodejs。
1> Robert..:
因为它是基于高山的图像,所以您没有apt-get,而是拥有apk
。因此,使用默认值docker:latest
只需添加以下内容apk --update add nodejs
:
before_script:
- apk --update add nodejs
您已经准备好使用dind和nodejs。