2016-08-04 2 views
2

빌드 용 도커를 사용하는 데 어려움이 있습니다. 고정 표시기가 왜gitlab ci 커뮤니티 에디션 용 도커 사용

gitlab-ci-multi-runner 1.3.2 (0323456) 
Using Docker executor with image java:8 ... 
Pulling docker image docker:dind ... 
Starting service docker:dind ... 
Waiting for services to be up and running... 
Pulling docker image java:8 ... 
Running on runner-30dcea4b-project-1408237-concurrent-0 via runner-30dcea4b-machine-1470340415-c2bbfc45-digital-ocean-4gb... 
Cloning repository... 
Cloning into '/builds/.../...'... 
Checking out 9ba87ff0 as master... 
$ docker info 
/bin/bash: line 42: docker: command not found 

ERROR: Build failed: exit code 1  

모든 단서를 찾을 수 없습니다 : 작업의 출력이 여기

image: docker:latest 

services: 
    - docker:dind 

stages: 
    - build 

build: 
    image: java:8 
    stage: build 
    script: 
    - docker info 
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com/... 
    - sbt server/docker:publish 

그리고 :이 설정 파일이 어떻게 보이는지 gitlab CI입니까?

답변

1

docker info 명령은 도커가 설치되지 않았거나 사용할 수없는 java:8 기반 컨테이너에서 실행됩니다.

+0

감사합니다. 같은 시간에 sbt와 docker를 사용할 수있는 무대를 가질 수 있습니까? –

+0

docker 최신 이미지가 항상 필요하지 않으면 IMO, docker 컨테이너 아래에 java 및 sbt를 설치하십시오. 최신 이미지 및 최신 이미지를 커밋하십시오. 이미지를 CI 스크립트의 소스 포인트로 사용하십시오. 그런 다음 빌드 아래 다른 이미지 (java : 8) 호출을 건너 뛸 수 있습니다. – VanagaS

2

는 투쟁의 며칠 후, 나는 다음 설치를 내놓았다 :

image: gitlab/dind 

stages: 
    - test 
    - build 

before_script: 
- echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections 
- apt-get update 
- apt-get install -y curl 
- apt-get install -y software-properties-common python-software-properties 
- add-apt-repository -y ppa:webupd8team/java 
- apt-get update 
- apt-get install -y oracle-java8-installer 
- rm -rf /var/lib/apt/lists/* 
- rm -rf /var/cache/oracle-jdk8-installer 
- apt-get update -yqq 
- apt-get install apt-transport-https -yqq 
- echo "deb http://dl.bintray.com/sbt/debian /" | tee -a /etc/apt/sources.list.d/sbt.list 
- apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 642AC823 
- apt-get update -yqq 
- apt-get install sbt -yqq 
- sbt sbt-version 

test: 
    stage: test 
    script: 
    - sbt scalastyle && sbt test:scalastyle 
    - sbt clean coverage test coverageReport 

build: 
    stage: build 
    script: 
    - docker info 
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com/... 
    - sbt server/docker:publish 

그것은 고정 표시기 (마음 gitlab/dind 이미지), 자바와 SBT가 있습니다. 이제 sbt docker 플러그인에서 gitlab 레지스트리로 이동할 수 있습니다.