gitlab.com CI-在docker中使用docker构建NodeJS应用程序

问题描述:

我目前正面临gitlab.com共享运行程序的问题。我想要在我的管道archieve是:
- NPM安装和使用咕噜做出一些uncss,最大限度地减少和压缩任务
- 清理 - 建立与应用程序泊坞窗个容器中包括
- 移动容器到gitlab注册表gitlab.com CI-在docker中使用docker构建NodeJS应用程序

Unfortunateley我很久没有得到它了!我尝试了很多不同的gitlab.ci配置 - 没有成功。问题是,我必须使用“image:docker:latest”来运行所有docker-tools。但是,我没有在容器中安装node和grunt。
另一种方式是不工作。我正在尝试使用image:centos:latest并手动安装docker - 但这也不起作用,因为我总是得到一个Failed to get D-Bus connection: Operation not permitted
有没有人在docker共享runner中使用docker build命令在gitlab-ci上有更多经验?
任何帮助是高度赞赏!

谢谢
Jannik

Gitlab可以是一个有点棘手:)我没有基于CentOS的例子,但我有一个基于Ubuntu的一个,如果可以帮助您。下面是我的一个工作gitlab管道的复制粘贴,它使用了一些gulp(你应该很容易调整它来适应你的grunt)。

的.gitlab-ci.yml看起来是这样的(调整容器...开头的变量):

variables: 
    CONTAINER_TEST_IMAGE: registry.gitlab.com/psono/psono-client:$CI_BUILD_REF_NAME 
    CONTAINER_RELEASE_IMAGE: registry.gitlab.com/psono/psono-client:latest 

stages: 
    - build 

docker-image: 
    stage: build 
    image: ubuntu:16.04 
    services: 
    - docker:dind 
    variables: 
    DOCKER_HOST: 'tcp://docker:2375' 
    script: 
    - sh ./var/build-ubuntu.sh 
    - docker info 
    - docker login -u gitlab-ci-token -p "$CI_BUILD_TOKEN" registry.gitlab.com 
    - docker build -t $CONTAINER_TEST_IMAGE . 
    - docker push $CONTAINER_TEST_IMAGE 

此外,我有这个” ./var/build-ubuntu.sh “你可以根据你的需要调整一下,替换一些Ubuntu的依赖项或者根据需要切换grup的gulp:

#!/usr/bin/env bash 
apt-get update && \ 
apt-get install -y libfontconfig zip nodejs npm git apt-transport-https ca-certificates curl openssl software-properties-common && \ 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ 
add-apt-repository \ 
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ 
    $(lsb_release -cs) \ 
    stable" && \ 
apt-get update && \ 
apt-get install -y docker-ce && \ 
ln -s /usr/bin/nodejs /usr/bin/node && \ 
npm install && \ 
node --version && \ 
npm --version 
+0

嗨!谢谢你的快速回答。我正在使用ubuntu镜像和docker:dind服务 - 但仍然没有成功:(关于节点的每个任务都在工作,但是我想使用docker-tools的时候我得到了这个答案:'/ bin/bash:line 59:docker:命令未找到“我在做什么错了?为什么它在为你工作?:( – Jannik

+0

很高兴我能帮忙。 – chickahoona

+0

对不起,我的答案太快了:DI更新了.. – Jannik