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
嗨!谢谢你的快速回答。我正在使用ubuntu镜像和docker:dind服务 - 但仍然没有成功:(关于节点的每个任务都在工作,但是我想使用docker-tools的时候我得到了这个答案:'/ bin/bash:line 59:docker:命令未找到“我在做什么错了?为什么它在为你工作?:( – Jannik
很高兴我能帮忙。 – chickahoona
对不起,我的答案太快了:DI更新了.. – Jannik